diff --git a/.github/workflows/bsd_vm_check.yml b/.github/workflows/bsd_vm_check.yml index 117a4f39..7ea6b602 100644 --- a/.github/workflows/bsd_vm_check.yml +++ b/.github/workflows/bsd_vm_check.yml @@ -23,7 +23,7 @@ env: jobs: bsd-vm-test: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 timeout-minutes: 20 steps: - name: Checkout repository diff --git a/.github/workflows/build_releases.yml b/.github/workflows/build_releases.yml index 4f47c718..598e62d5 100644 --- a/.github/workflows/build_releases.yml +++ b/.github/workflows/build_releases.yml @@ -6,6 +6,8 @@ # - .deb releases # - .rpm releases # +# Note that for musl targets, we use cross to avoid having to set up the dependencies for musl. +# # TODO: Break this up into scripts instead. # TODO: Trigger this in CI as well if this file changes, so I don't have to spam nightly builds. @@ -47,8 +49,6 @@ jobs: info: # ======= Supported targets ======= # Linux (x86-64, x86, aarch64) - # - # TODO: In the future, when ARM runners are available on github, switch ARM targets off of cross. - { target: "x86_64-unknown-linux-gnu", os: "ubuntu-22.04", @@ -72,8 +72,8 @@ jobs: } - { target: "aarch64-unknown-linux-gnu", - os: "ubuntu-22.04", - cross: true, + os: "ubuntu-22.04-arm", + cross: false, } - { target: "aarch64-unknown-linux-musl", @@ -132,7 +132,7 @@ jobs: # Android - { target: "aarch64-linux-android", - os: "ubuntu-latest", + os: "ubuntu-24.04", cross: true, no-default-features: true, } @@ -389,7 +389,7 @@ jobs: build-cirrus: name: "Build using Cirrus CI" - runs-on: "ubuntu-latest" + runs-on: "ubuntu-24.04" timeout-minutes: 12 steps: - name: Checkout repository @@ -427,17 +427,25 @@ jobs: build-deb: name: "Build .deb software packages" - runs-on: "ubuntu-22.04" + runs-on: ${{ matrix.info.os || 'ubuntu-24.04' }} timeout-minutes: 12 strategy: fail-fast: false matrix: - # TODO: In the future, when ARM runners are available on github, switch ARM targets off of cross. info: - { target: "x86_64-unknown-linux-gnu", dpkg: amd64 } - { target: "x86_64-unknown-linux-musl", cross: true, dpkg: amd64 } - { target: "aarch64-unknown-linux-gnu", + cross: false, + dpkg: arm64, + os: "ubuntu-22.04-arm", + } + # The cross images don't work with ARM runners, unfortunately. We could build it on x86 with cross + # and then copy it over to an ARM runner but that's kind of annoying, so I'll skip this for now. + # TODO: Maybe improve how we do the .deb software building step? + - { + target: "aarch64-unknown-linux-musl", cross: true, dpkg: arm64, container: "ghcr.io/clementtsang/cargo-deb-aarch64-unknown-linux-gnu", @@ -448,12 +456,6 @@ jobs: dpkg: armhf, container: "ghcr.io/clementtsang/cargo-deb-armv7-unknown-linux-gnueabihf", } - - { - target: "aarch64-unknown-linux-musl", - cross: true, - dpkg: arm64, - container: "ghcr.io/clementtsang/cargo-deb-aarch64-unknown-linux-gnu", - } - { target: "armv7-unknown-linux-musleabihf", cross: true, @@ -501,8 +503,8 @@ jobs: run: | gzip ./manpage/btm.1 - - name: Build Debian release (x86-64) - if: startsWith(matrix.info.target, 'x86_64') + - name: Build Debian release (non-container) + if: ${{ matrix.info.container == '' }} env: BTM_GENERATE: true run: | @@ -510,8 +512,8 @@ jobs: cargo deb --no-build --target ${{ matrix.info.target }} cp ./target/debian/bottom_*.deb . - - name: Build Debian release (ARM) - if: startsWith(matrix.info.target, 'x86_64') != true + - name: Build Debian release (container) + if: ${{ matrix.info.container != '' }} env: BTM_GENERATE: true run: | @@ -562,7 +564,7 @@ jobs: build-rpm: name: "Build .rpm software packages" - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 container: ghcr.io/clementtsang/almalinux-8 timeout-minutes: 12 strategy: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 553593d5..e5c6ea95 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ concurrency: jobs: # Check if things should be skipped. pre-job: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: should_skip: ${{ steps.skip_check.outputs.should_skip }} steps: @@ -45,8 +45,6 @@ jobs: do_not_skip: '["workflow_dispatch", "push"]' # Runs rustfmt + tests + clippy on the main supported platforms. - # - # TODO: In the future, when ARM runners are available on github, switch ARM targets off of cross. supported: needs: pre-job if: ${{ needs.pre-job.outputs.should_skip != 'true' }} @@ -57,14 +55,14 @@ jobs: matrix: info: - { - os: "ubuntu-latest", + os: "ubuntu-24.04", target: "x86_64-unknown-linux-gnu", cross: false, } - { - os: "ubuntu-latest", + os: "ubuntu-24.04-arm", target: "aarch64-unknown-linux-gnu", - cross: true, + cross: false, } - { os: "macos-15", target: "x86_64-apple-darwin", cross: false } - { os: "macos-15", target: "aarch64-apple-darwin", cross: false } @@ -138,17 +136,17 @@ jobs: info: # x86 or x86-64 - { - os: "ubuntu-latest", + os: "ubuntu-24.04", target: "i686-unknown-linux-gnu", cross: true, } - { - os: "ubuntu-latest", + os: "ubuntu-24.04", target: "x86_64-unknown-linux-musl", cross: false, } - { - os: "ubuntu-latest", + os: "ubuntu-24.04", target: "i686-unknown-linux-musl", cross: true, } @@ -162,7 +160,7 @@ jobs: # Beta - { - os: "ubuntu-latest", + os: "ubuntu-24.04", target: "x86_64-unknown-linux-gnu", cross: false, rust: "beta", @@ -182,42 +180,42 @@ jobs: # armv7 - { - os: "ubuntu-latest", + os: "ubuntu-24.04", target: "armv7-unknown-linux-gnueabihf", cross: true, } # armv6 - { - os: "ubuntu-latest", + os: "ubuntu-24.04", target: "arm-unknown-linux-gnueabihf", cross: true, } # PowerPC 64 LE - { - os: "ubuntu-latest", + os: "ubuntu-24.04", target: "powerpc64le-unknown-linux-gnu", cross: true, } # Risc-V 64gc - { - os: "ubuntu-latest", + os: "ubuntu-24.04", target: "riscv64gc-unknown-linux-gnu", cross: true, } # Loongarch - { - os: "ubuntu-latest", + os: "ubuntu-24.04", target: "loongarch64-unknown-linux-gnu", cross: true, } # Android ARM64 - { - os: "ubuntu-latest", + os: "ubuntu-24.04", target: "aarch64-linux-android", cross: true, no-default-features: true, @@ -234,17 +232,13 @@ jobs: # FreeBSD - { - os: "ubuntu-latest", + os: "ubuntu-24.04", target: "x86_64-unknown-freebsd", cross: true, } # NetBSD - - { - os: "ubuntu-latest", - target: "x86_64-unknown-netbsd", - cross: true, - } + - { os: "ubuntu-24.04", target: "x86_64-unknown-netbsd", cross: true } runs-on: ${{ matrix.info.os }} if: ${{ needs.pre-job.outputs.should_skip != 'true' }} timeout-minutes: 12 @@ -315,7 +309,7 @@ jobs: name: "CI Pass Check" needs: [supported, unsupported-check] if: ${{ needs.supported.result != 'skipped' || needs.unsupported-check.result != 'skipped' }} - runs-on: "ubuntu-latest" + runs-on: "ubuntu-24.04" steps: - name: CI Passed if: ${{ (needs.supported.result == 'success' || needs.supported.result == 'skipped') && (needs.unsupported-check.result == 'success' || needs.unsupported-check.result == 'skipped') }} diff --git a/.github/workflows/clear_workflow_cache.yml b/.github/workflows/clear_workflow_cache.yml index c83bab41..b2b6891a 100644 --- a/.github/workflows/clear_workflow_cache.yml +++ b/.github/workflows/clear_workflow_cache.yml @@ -18,7 +18,7 @@ on: jobs: clear-cache: if: ${{ github.event_name != 'pull_request' || ! github.event.pull_request.head.repo.fork }} # If it is a PR, only if not a fork - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 6c46cded..1c74c1ee 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -22,7 +22,7 @@ concurrency: jobs: pre-job: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: should_skip: ${{ steps.skip_check.outputs.should_skip }} steps: @@ -42,7 +42,7 @@ jobs: fail-fast: false matrix: info: - - { os: "ubuntu-latest", target: "x86_64-unknown-linux-gnu" } + - { os: "ubuntu-24.04", target: "x86_64-unknown-linux-gnu" } - { os: "macos-14", target: "aarch64-apple-darwin", cross: false } - { os: "windows-2022", target: "x86_64-pc-windows-msvc" } steps: diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 8832290b..55cdefb2 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -23,7 +23,7 @@ env: jobs: initialize: name: initialize - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: version: ${{ env.VERSION }} steps: @@ -51,7 +51,7 @@ jobs: generate-choco: needs: [initialize, build-release] name: "Generate Chocolatey files" - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout repository uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 @@ -92,7 +92,7 @@ jobs: upload-release: name: upload-release - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: [initialize, generate-choco, build-release] steps: - name: Set release version diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c9c192c7..047dd7d1 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -26,7 +26,7 @@ env: jobs: build-documentation: name: Build and deploy docs - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout repository uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index fff92be3..cea6a09d 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -23,7 +23,7 @@ jobs: # Check if things should be skipped, or if this is a mock job. initialize-job: name: initialize-job - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: should_skip: ${{ steps.skip_check.outputs.should_skip }} steps: @@ -55,7 +55,7 @@ jobs: upload-release: name: upload-release needs: build-release - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: TAG_NAME: ${{ steps.tag_release_name.outputs.TAG_NAME }} steps: diff --git a/.github/workflows/post_release.yml b/.github/workflows/post_release.yml index ed740ddd..2ce584a0 100644 --- a/.github/workflows/post_release.yml +++ b/.github/workflows/post_release.yml @@ -21,7 +21,7 @@ env: jobs: initialize: name: initialize - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: version: ${{ env.VERSION }} steps: @@ -43,7 +43,7 @@ jobs: docs: needs: [initialize] - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Set release version shell: bash @@ -81,7 +81,7 @@ jobs: chocolatey: needs: [initialize] - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Set release version shell: bash diff --git a/.github/workflows/publish_github_pages.yml b/.github/workflows/publish_github_pages.yml index 2136e5f4..2259492d 100644 --- a/.github/workflows/publish_github_pages.yml +++ b/.github/workflows/publish_github_pages.yml @@ -12,7 +12,7 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout repository uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 @@ -28,7 +28,7 @@ jobs: path: "./" deploy: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: build if: github.ref == 'refs/heads/main' environment: diff --git a/.github/workflows/test_docs.yml b/.github/workflows/test_docs.yml index 60991c8e..b3a317ec 100644 --- a/.github/workflows/test_docs.yml +++ b/.github/workflows/test_docs.yml @@ -12,7 +12,7 @@ concurrency: jobs: pre-job: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: should_skip: ${{ steps.skip_check.outputs.should_skip }} steps: @@ -27,7 +27,7 @@ jobs: name: Test building docs needs: pre-job if: ${{ needs.pre-job.outputs.should_skip != 'true' }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout repository uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 diff --git a/.github/workflows/validate_schema.yml b/.github/workflows/validate_schema.yml index 15f15f7d..793b47a3 100644 --- a/.github/workflows/validate_schema.yml +++ b/.github/workflows/validate_schema.yml @@ -20,7 +20,7 @@ concurrency: jobs: pre-job: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: should_skip: ${{ steps.skip_check.outputs.should_skip }} steps: @@ -35,7 +35,7 @@ jobs: name: Test validating schema needs: pre-job if: ${{ needs.pre-job.outputs.should_skip != 'true' }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout repository uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7