From 53b9143778506f060717091a41fc47f6b2dada70 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 18 Mar 2025 10:18:16 +0100 Subject: [PATCH] Update CI config - latest TagBot.yml - use `julia-actions/cache` instead of `actions/cache` - test macOS on native ARM / aarch64 where applicable - avoid concurrent PR CI runs - drop obsolete `file` argument to `codecov/codecov-action` --- .github/workflows/CI.yml | 39 ++++++++++++++++++++++-------------- .github/workflows/TagBot.yml | 17 ++++++++++++++++ 2 files changed, 41 insertions(+), 15 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 75b89a7..5fc181f 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -5,6 +5,19 @@ on: branches: - main tags: '*' + +concurrency: + # group by workflow and ref; the last slightly strange component ensures that for pull + # requests, we limit to 1 concurrent job, but for the default repository branch we don't + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref_name != github.event.repository.default_branch || github.run_number }} + # Cancel intermediate builds, but only if it is a pull request build. + cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} + +# needed to allow julia-actions/cache to delete old caches that it has created +permissions: + actions: write + contents: read + jobs: test: name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} @@ -21,30 +34,26 @@ jobs: - macOS-latest - windows-latest arch: - - x64 + - '' # default arch, usually x64 but for macOS also aarch64 - x86 exclude: - - os: macOS-latest + - os: macos-latest # Apple Silicon arch: x86 + - os: macos-latest # Apple Silicon + version: '1.0' + arch: '' + include: + - os: macos-latest # Apple Silicon + version: '1.0' + arch: 'x64' # run x86_64 build of Julia under Rosetta 2 emulation steps: - uses: actions/checkout@v4 - uses: julia-actions/setup-julia@v2 with: version: ${{ matrix.version }} - arch: ${{ matrix.arch }} - - uses: actions/cache@v4 - env: - cache-name: cache-artifacts - with: - path: ~/.julia/artifacts - key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} - restore-keys: | - ${{ runner.os }}-test-${{ env.cache-name }}- - ${{ runner.os }}-test- - ${{ runner.os }}- + arch: ${{ (matrix.arch == '') && runner.arch || matrix.arch }} + - uses: julia-actions/cache@v2 - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 - uses: julia-actions/julia-processcoverage@v1 - uses: codecov/codecov-action@v5 - with: - file: lcov.info diff --git a/.github/workflows/TagBot.yml b/.github/workflows/TagBot.yml index f49313b..3b433b1 100644 --- a/.github/workflows/TagBot.yml +++ b/.github/workflows/TagBot.yml @@ -4,6 +4,23 @@ on: types: - created workflow_dispatch: + inputs: + lookback: + default: "3" +# The following is commented out due to https://github.com/JuliaRegistries/TagBot/issues/388 +# permissions: +# actions: read +# checks: read +# contents: write +# deployments: read +# issues: read +# discussions: read +# packages: read +# pages: read +# pull-requests: read +# repository-projects: read +# security-events: read +# statuses: read jobs: TagBot: if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'