Add a regression test #212
Workflow file for this run
This file contains 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: | ||
quick-tests: | ||
name: Quick tests | ||
runs-on: ${{ matrix.os }} | ||
timeout-minutes: 60 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
version: | ||
- "1.6" | ||
os: | ||
- ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | ||
- uses: julia-actions/setup-julia@5c9647d97b78a5debe5164e9eec09d653d29bd71 | ||
with: | ||
version: ${{ matrix.version }} | ||
- uses: julia-actions/cache@2b1bf4d8a138668ac719ea7ca149b53ed8d8401e # v2.0.7 | ||
- name: Install dependencies | ||
run: julia --color=yes --project -e "using Pkg; Pkg.instantiate()" | ||
- uses: julia-actions/julia-runtest@678da69444cd5f13d7e674a90cb4f534639a14f9 # v1.11.2 | ||
full-test: | ||
name: Full tests | ||
# 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@11bd71901bbe5b1630ceea73d27597364c9af683 | ||
- uses: julia-actions/setup-julia@5c9647d97b78a5debe5164e9eec09d653d29bd71 | ||
with: | ||
version: "1.6" | ||
- uses: julia-actions/cache@2b1bf4d8a138668ac719ea7ca149b53ed8d8401e # v2.0.7 | ||
- 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@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 | ||
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@fa0a91b85d4f404e444e00e005971372dc801d16 | ||
with: | ||
name: versions | ||
- name: Configure AWS credentials | ||
uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 | ||
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 |