name: Upstream utils on: pull_request: push: branches-ignore: - main concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true jobs: update: name: "Update" runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v6 with: fetch-depth: 0 - name: Fetch all history and metadata run: | git checkout -b pr git branch -f main origin/main - name: Set up Python 3.12 uses: actions/setup-python@v6 with: python-version: '3.12' - name: Configure committer identity run: | git config --global user.email "you@example.com" git config --global user.name "Your Name" - name: Run apriltag.py run: | cd upstream_utils ./apriltag.py clone ./apriltag.py copy-src ./apriltag.py format-patch - name: Run argparse_lib.py run: | cd upstream_utils ./argparse_lib.py clone ./argparse_lib.py copy-src ./argparse_lib.py format-patch - name: Run benchmark.py run: | cd upstream_utils ./benchmark.py clone ./benchmark.py copy-src ./benchmark.py format-patch - name: Run double-conversion.py run: | cd upstream_utils ./double-conversion.py clone ./double-conversion.py copy-src ./double-conversion.py format-patch - name: Run eigen.py run: | cd upstream_utils ./eigen.py clone ./eigen.py copy-src ./eigen.py format-patch - name: Run expected.py run: | cd upstream_utils ./expected.py clone ./expected.py copy-src ./expected.py format-patch - name: Run fmt.py run: | cd upstream_utils ./fmt.py clone ./fmt.py copy-src ./fmt.py format-patch - name: Run gcem.py run: | cd upstream_utils ./gcem.py clone ./gcem.py copy-src ./gcem.py format-patch - name: Run gl3w.py run: | cd upstream_utils ./gl3w.py clone ./gl3w.py copy-src ./gl3w.py format-patch - name: Run glfw.py run: | cd upstream_utils ./glfw.py clone ./glfw.py copy-src ./glfw.py format-patch - name: Run googletest.py run: | cd upstream_utils ./googletest.py clone ./googletest.py copy-src ./googletest.py format-patch - name: Run imgui.py run: | cd upstream_utils ./imgui.py clone ./imgui.py copy-src ./imgui.py format-patch - name: Run implot.py run: | cd upstream_utils ./implot.py clone ./implot.py copy-src ./implot.py format-patch - name: Run json.py run: | cd upstream_utils ./json.py clone ./json.py copy-src ./json.py format-patch - name: Run libuv.py run: | cd upstream_utils ./libuv.py clone ./libuv.py copy-src ./libuv.py format-patch - name: Run llvm.py run: | cd upstream_utils ./llvm.py clone ./llvm.py copy-src ./llvm.py format-patch - name: Run mpack.py run: | cd upstream_utils ./mpack.py clone ./mpack.py copy-src ./mpack.py format-patch - name: Run sleipnir.py run: | cd upstream_utils ./sleipnir.py clone ./sleipnir.py copy-src ./sleipnir.py format-patch - name: Run stb.py run: | cd upstream_utils ./stb.py clone ./stb.py copy-src ./stb.py format-patch - name: Run upb.py run: | cd upstream_utils ./upb.py clone ./upb.py copy-src ./upb.py format-patch - name: Add untracked files to index so they count as changes run: git add -A - name: Check output run: | set +e git --no-pager diff --exit-code HEAD ':!*.bazel' git_exit_code=$? if test "$git_exit_code" -ne "0"; then echo "::error ::upstream_utils check failed. This is usually caused by a bad script or the copied files differing from what the script outputs. You can learn more about using upstream_utils to modify thirdparty libraries at https://github.com/wpilibsuite/allwpilib/blob/main/upstream_utils/README.md" exit $git_exit_code fi