| name: Julia Enzyme CI |
| |
| on: |
| push: |
| branches: |
| - main |
| pull_request: |
| branches: |
| - main |
| merge_group: |
| |
| # needed to allow julia-actions/cache to delete old caches that it has created |
| permissions: |
| actions: write |
| contents: read |
| |
| concurrency: |
| # Skip intermediate builds: always. |
| # Cancel intermediate builds: only if it is a pull request build. |
| group: ${{ github.workflow }}-${{ github.ref }} |
| cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} |
| |
| jobs: |
| build: |
| name: Enzyme CI Julia ${{ matrix.version }} ${{ matrix.os }} |
| runs-on: ${{ matrix.os }} |
| continue-on-error: ${{ matrix.version == 'nightly' }} |
| strategy: |
| fail-fast: false |
| matrix: |
| version: |
| - '1.10' |
| - '1.11' |
| - '1.12' |
| os: |
| - ubuntu-latest |
| arch: |
| - 'default' |
| timeout-minutes: 60 |
| steps: |
| - uses: actions/checkout@v5 |
| - uses: actions/checkout@v5 |
| with: |
| repository: 'EnzymeAD/Enzyme.jl' |
| path: ./jl |
| ref: main |
| - uses: julia-actions/setup-julia@v2 |
| with: |
| version: ${{ matrix.version }} |
| arch: ${{ matrix.arch }} |
| - uses: julia-actions/cache@v2 |
| |
| - name: Set environment variable to build libEnzyme |
| if: ${{ runner.os == 'macOS' }} |
| run: | |
| echo "SDKROOT=$(xcrun --show-sdk-path)" >> "${GITHUB_ENV}" |
| - name: Build libEnzyme |
| run: | |
| julia --color=yes --project=jl/deps -e 'using Pkg; Pkg.instantiate()' |
| julia --color=yes --project=jl/deps jl/deps/build_local.jl ./enzyme |
| - name: Dev EnzymeCore |
| run: julia --color=yes --project=jl -e 'using Pkg; Pkg.develop(path="jl/lib/EnzymeCore")' |
| - uses: julia-actions/julia-buildpkg@v1 |
| with: |
| project: jl |
| - name: "Set test arguments" |
| shell: bash |
| run: | |
| # Run tests in verbose mode |
| TEST_ARGS=(--verbose) |
| # if [[ ${{ runner.os }} == 'macOS' ]]; then |
| # # Encourage ParallelTestRunner to use two jobs on macOS, rather |
| # # than the single one it'd use by default. |
| # TEST_ARGS+=(--jobs=2) |
| # fi |
| echo "runtest_test_args=${TEST_ARGS[@]}" >> "${GITHUB_ENV}" |
| - uses: julia-actions/julia-runtest@v1 |
| with: |
| project: jl |
| test_args: ${{ env.runtest_test_args }} |