diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9105ca8..d6f678c 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 }} @@ -23,30 +36,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