frc-docs icon indicating copy to clipboard operation
frc-docs copied to clipboard

Document GradleRIO predeploy task for running commands before robot program deploy and start

Open calcmogul opened this issue 4 years ago • 4 comments

The following gradle-fu I learned from @ThadHouse is very useful for running commands as admin on the roboRIO before the robot program deploys and starts. We should document it. (Note that the robot program is deleted at this point.)

deploy {
    ...
    artifacts {
        frcNativeArtifact('frcCpp') {
            ...
            predeploy << {
                // Give RT capability
                it.execute('setcap cap_sys_nice+eip /home/lvuser/frcUserProgram')

                // Disable crond because it uses 50% CPU and there's no cronjobs to run
                it.execute('/etc/init.d/crond stop')

                // Disable NI web server because it leaks memory badly
                it.execute('/usr/local/natinst/etc/init.d/systemWebServer stop')

                // Compress old log files
                it.execute('find . -type f | grep \\.csv$ | xargs -d \\n gzip -q')
            }
        }

calcmogul avatar Jan 25 '21 20:01 calcmogul

Not sure where to put this and #1151. Maybe in an "Advanced Gradle Configuration" section under something.

Daltz333 avatar Jan 25 '21 21:01 Daltz333

I'm thinking of an "Advanced Gradle Configuration" section in the GradleRIO docs, not frc-docs. A few examples came into discussion on Discord yesterday. However, I didn't get @ThadHouse's thoughts about it.

Starlight220 avatar Jan 26 '21 10:01 Starlight220

There was debate in the slack chat, but it seemed that @PeterJohnson and Tyler agreed that it was user- facing. Setting C++ compiler args is common for C++ users.

Daltz333 avatar Jan 26 '21 14:01 Daltz333

The API will be changing for 2022.

Daltz333 avatar Feb 11 '21 17:02 Daltz333