Bump julia-actions/setup-julia from 2.7.0 to 3.0.2 (#92) #534
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| paths-ignore: | |
| - "README.md" | |
| pull_request: | |
| merge_group: # GitHub Merge Queue | |
| concurrency: | |
| # Skip intermediate builds: all builds except for builds on the `master` branch | |
| # Cancel intermediate builds: only pull request builds | |
| group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref != 'refs/heads/main' || github.run_number }} | |
| cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} | |
| permissions: | |
| contents: read | |
| actions: write # Needed for `julia-actions/cache` to clear old caches | |
| env: | |
| aws_region: us-east-1 | |
| s3_bucket: julialang2 | |
| jobs: | |
| package-tests: | |
| name: Package tests | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: | |
| - '1.10' # 1.10 = current LTS | |
| os: | |
| - ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # 7.0.1 | |
| - uses: julia-actions/setup-julia@fa02766e078afaaf09b14210362cee14137e6a32 # v3.0.2 | |
| with: | |
| version: ${{ matrix.version }} | |
| - uses: julia-actions/cache@b7788abd52452d5bc033d69796e110d9906af4ab # v3.2.0 | |
| - name: Install dependencies | |
| run: julia --color=yes --project -e "using Pkg; Pkg.instantiate()" | |
| - uses: julia-actions/julia-runtest@6e050c8013b833b1195105ff2fce9cd802f53271 # v1.12.0 | |
| full-test: | |
| name: Full test | |
| # This job takes a long time (1+ hours). | |
| # So we intentionally skip this job on PR runs. | |
| # But we still run this job on Merge Queue jobs. | |
| if: github.event_name != 'pull_request' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 360 | |
| strategy: | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # 7.0.1 | |
| - uses: julia-actions/setup-julia@fa02766e078afaaf09b14210362cee14137e6a32 # v3.0.2 | |
| with: | |
| version: '1.10' # 1.10 = current LTS | |
| - uses: julia-actions/cache@b7788abd52452d5bc033d69796e110d9906af4ab # v3.2.0 | |
| - name: Install dependencies | |
| run: julia --color=yes --project -e "using Pkg; Pkg.instantiate()" | |
| - run: rm -f versions.json | |
| - name: Build versions.json | |
| run: | | |
| using VersionsJSONUtil | |
| VersionsJSONUtil.main("versions.json") | |
| shell: julia --project {0} | |
| - name: Validate versions.json against schema | |
| run: npx -p ajv-cli@3.3.0 ajv -s schema.json -d versions.json | |
| - run: julia --project test/more_tests.jl versions.json | |
| - name: Upload versions.json as workflow artifact | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: versions | |
| path: versions.json | |
| if-no-files-found: error | |
| upload-to-s3: | |
| needs: [package-tests, full-test] | |
| if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - name: Download versions.json from previous job | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | |
| with: | |
| name: versions | |
| - name: Configure AWS credentials | |
| uses: aws-actions/configure-aws-credentials@e6de054238d6b7531b4efff3b6587d9aade6a06c # 6.2.3 | |
| with: | |
| aws-access-key-id: ${{ secrets.AWS_DEPLOY_ACCESS_KEY_ID }} | |
| aws-secret-access-key: ${{ secrets.AWS_DEPLOY_SECRET_ACCESS_KEY }} | |
| aws-region: ${{ env.aws_region }} | |
| - name: Upload versions.json to S3 | |
| run: aws s3 cp versions.json s3://${{ env.s3_bucket }}/bin/versions.json --acl public-read --no-progress | |
| - name: Purge cache | |
| run: curl -X PURGE https://julialang-s3.julialang.org/bin/versions.json | |
| test-current-s3: | |
| # We intentionally do not make this job a "required status check" on PRs. | |
| # Because if the currently deployed `versions.json` on S3 is already broken, | |
| # then this job will fail, which would block us from merging a PR with fixes. | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| strategy: | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # 7.0.1 | |
| with: | |
| persist-credentials: false | |
| - uses: julia-actions/setup-julia@fa02766e078afaaf09b14210362cee14137e6a32 # v3.0.2 | |
| with: | |
| version: 'lts' | |
| - uses: julia-actions/cache@b7788abd52452d5bc033d69796e110d9906af4ab # v3.2.0 | |
| - name: Install dependencies | |
| run: julia --color=yes --project -e "using Pkg; Pkg.instantiate(); Pkg.precompile()" | |
| - name: Remove an old versions.json if one happens to be lying around | |
| run: rm -fv versions.json | |
| - name: Download the current versions.json from S3 | |
| run: curl -LO https://julialang-s3.julialang.org/bin/versions.json | |
| - name: Run the post-build tests on the versions.json that we downloaded from S3 | |
| run: julia --project test/more_tests.jl versions.json |