abi bump #6549
Workflow file for this run
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: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| - release-* | |
| tags: '*' | |
| 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: | |
| test: | |
| timeout-minutes: 120 | |
| name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ matrix.libEnzyme }} libEnzyme - assertions=${{ matrix.assertions }} - ${{ github.event_name }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: | |
| - '1.10' | |
| - '1.11' | |
| - 'nightly' | |
| os: | |
| - ubuntu-24.04 | |
| - macOS-13 | |
| - windows-latest | |
| arch: | |
| - x64 | |
| assertions: | |
| - false | |
| libEnzyme: [local, packaged] | |
| exclude: | |
| - os: windows-latest | |
| arch: x64 | |
| libEnzyme: local | |
| include: | |
| - os: ubuntu-24.04 | |
| arch: x86 | |
| libEnzyme: packaged | |
| version: '1.10' | |
| assertions: false | |
| - os: ubuntu-24.04 | |
| arch: x64 | |
| libEnzyme: packaged | |
| version: '1.10' | |
| assertions: true | |
| - os: ubuntu-24.04 | |
| arch: x64 | |
| libEnzyme: packaged | |
| version: '1.11' | |
| assertions: true | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: julia-actions/setup-julia@v2 | |
| if: ${{ ! matrix.assertions }} | |
| with: | |
| version: ${{ matrix.version }} | |
| arch: ${{ matrix.arch }} | |
| - uses: actions/checkout@v4 | |
| if: ${{ matrix.assertions }} | |
| with: | |
| repository: 'JuliaLang/julia' | |
| ref: release-${{ matrix.version }} | |
| path: 'julia' | |
| - name: Compile Julia | |
| if: ${{ matrix.assertions }} | |
| run: | | |
| sed -i.bak 's/exit 2/exit 0/g' julia/deps/tools/jlchecksum | |
| make -C julia -j $(nproc) FORCE_ASSERTIONS=1 LLVM_ASSERTIONS=1 JULIA_PRECOMPILE=0 | |
| echo $PWD/julia/usr/bin >> $GITHUB_PATH | |
| - uses: julia-actions/cache@v2 | |
| - name: add EnzymeCore | |
| shell: julia --color=yes --project=. {0} | |
| run: | | |
| using Pkg | |
| Pkg.develop([PackageSpec(; path) for path in ("lib/EnzymeCore", "lib/EnzymeTestUtils")]) | |
| Pkg.instantiate() | |
| env: | |
| JULIA_PKG_SERVER_REGISTRY_PREFERENCE: eager | |
| - name: Build libEnzyme | |
| if: ${{ matrix.libEnzyme == 'local' && matrix.os != 'macOS-latest'}} | |
| continue-on-error: ${{ matrix.version == 'nightly' }} | |
| id: build_libenzyme | |
| run: | | |
| julia --color=yes --project=deps -e 'using Pkg; Pkg.instantiate()' | |
| julia --color=yes --project=deps deps/build_local.jl | |
| cp LocalPreferences.toml test/ | |
| - name: Build libEnzyme MacOS | |
| if: ${{ matrix.libEnzyme == 'local' && matrix.os == 'macOS-latest'}} | |
| continue-on-error: ${{ matrix.version == 'nightly' }} | |
| id: build_libenzyme_mac | |
| run: | | |
| julia --color=yes --project=deps -e 'using Pkg; Pkg.instantiate()' | |
| SDKROOT=`xcrun --show-sdk-path` julia --color=yes --project=deps deps/build_local.jl | |
| cp LocalPreferences.toml test/ | |
| - uses: julia-actions/julia-buildpkg@v1 | |
| if: matrix.version != 'nightly' || steps.build_libenzyme.outcome == 'success' || steps.build_libenzyme_mac.outcome == 'success' | |
| continue-on-error: ${{ matrix.version == 'nightly' }} | |
| id: buildpkg | |
| env: | |
| JULIA_PKG_SERVER_REGISTRY_PREFERENCE: eager | |
| - uses: julia-actions/julia-runtest@v1 | |
| if: matrix.version != 'nightly' || steps.buildpkg.outcome == 'success' | |
| continue-on-error: ${{ matrix.version == 'nightly' }} | |
| id: run_tests | |
| env: | |
| JULIA_PKG_SERVER_REGISTRY_PREFERENCE: eager | |
| - uses: julia-actions/julia-processcoverage@v1 | |
| if: matrix.version != 'nightly' || steps.run_tests.outcome == 'success' | |
| - uses: codecov/codecov-action@v5 | |
| if: matrix.version != 'nightly' || steps.run_tests.outcome == 'success' | |
| with: | |
| files: lcov.info | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| fail_ci_if_error: false # or true if you want CI to fail when Codecov fails | |
| enzymetestutils: | |
| timeout-minutes: 60 | |
| name: EnzymeTestUtils - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ matrix.libEnzyme }} libEnzyme - ${{ github.event_name }} | |
| runs-on: ${{ matrix.os }} | |
| continue-on-error: ${{ matrix.version == 'nightly' }} | |
| env: | |
| JULIA_PROJECT: "lib/EnzymeTestUtils" | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: | |
| - '1.10' | |
| - '1.11' | |
| - 'nightly' | |
| os: | |
| - ubuntu-latest | |
| arch: | |
| - x64 | |
| libEnzyme: [packaged] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: julia-actions/setup-julia@v2 | |
| with: | |
| version: ${{ matrix.version }} | |
| arch: ${{ matrix.arch }} | |
| - uses: julia-actions/cache@v2 | |
| - name: setup EnzymeTestUtils | |
| shell: julia --color=yes {0} | |
| id: setup_testutils | |
| continue-on-error: ${{ matrix.version == 'nightly' }} | |
| run: | | |
| using Pkg | |
| Pkg.develop([PackageSpec(; path) for path in (".", "lib/EnzymeCore")]) | |
| Pkg.instantiate() | |
| env: | |
| JULIA_PKG_SERVER_REGISTRY_PREFERENCE: eager | |
| - name: Run the tests | |
| if: matrix.version != 'nightly' || steps.setup_testutils.outcome == 'success' | |
| continue-on-error: ${{ matrix.version == 'nightly' }} | |
| id: run_tests | |
| shell: julia --color=yes {0} | |
| run: | | |
| using Pkg | |
| Pkg.test("EnzymeTestUtils"; coverage=true) | |
| - uses: julia-actions/julia-processcoverage@v1 | |
| if: matrix.version != 'nightly' || steps.run_tests.outcome == 'success' | |
| with: | |
| directories: lib/EnzymeTestUtils/src | |
| - uses: codecov/codecov-action@v5 | |
| if: matrix.version != 'nightly' || steps.run_tests.outcome == 'success' | |
| with: | |
| files: lcov.info | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| fail_ci_if_error: false # or true if you want CI to fail when Codecov fails | |
| enzymecore: | |
| timeout-minutes: 20 | |
| name: EnzymeCore - Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ matrix.libEnzyme }} libEnzyme - ${{ github.event_name }} | |
| runs-on: ${{ matrix.os }} | |
| continue-on-error: ${{ matrix.version == 'nightly' }} | |
| env: | |
| JULIA_PROJECT: "lib/EnzymeCore" | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: | |
| - '1.10' | |
| - '1.11' | |
| - 'nightly' | |
| os: | |
| - ubuntu-latest | |
| arch: | |
| - x64 | |
| libEnzyme: [packaged] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: julia-actions/setup-julia@v2 | |
| with: | |
| version: ${{ matrix.version }} | |
| arch: ${{ matrix.arch }} | |
| - uses: julia-actions/cache@v2 | |
| - name: setup EnzymeCore | |
| shell: julia --color=yes {0} | |
| id: setup_testutils | |
| continue-on-error: ${{ matrix.version == 'nightly' }} | |
| run: | | |
| using Pkg | |
| Pkg.develop([PackageSpec(; path) for path in (".",)]) | |
| Pkg.instantiate() | |
| env: | |
| JULIA_PKG_SERVER_REGISTRY_PREFERENCE: eager | |
| - name: Run the tests | |
| if: matrix.version != 'nightly' || steps.setup_testutils.outcome == 'success' | |
| continue-on-error: ${{ matrix.version == 'nightly' }} | |
| id: run_tests | |
| shell: julia --color=yes {0} | |
| run: | | |
| using Pkg | |
| Pkg.test("EnzymeCore"; coverage=true) | |
| - uses: julia-actions/julia-processcoverage@v1 | |
| if: matrix.version != 'nightly' || steps.run_tests.outcome == 'success' | |
| with: | |
| directories: lib/EnzymeCore/src | |
| - uses: codecov/codecov-action@v5 | |
| if: matrix.version != 'nightly' || steps.run_tests.outcome == 'success' | |
| with: | |
| files: lcov.info | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| fail_ci_if_error: false # or true if you want CI to fail when Codecov fails | |
| integration: | |
| timeout-minutes: 20 | |
| name: Integration Tests - ${{ matrix.test }} | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| JULIA_PKG_SERVER_REGISTRY_PREFERENCE: eager | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: | |
| - '1.10' | |
| os: | |
| - ubuntu-latest | |
| test: | |
| - DynamicExpressions | |
| - Bijectors | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: julia-actions/setup-julia@v2 | |
| with: | |
| version: ${{ matrix.version }} | |
| - uses: julia-actions/cache@v2 | |
| - uses: julia-actions/julia-buildpkg@v1 | |
| - name: "Run tests" | |
| run: | | |
| julia --color=yes --project=test/integration/${{ matrix.test }} -e 'using Pkg; Pkg.develop([PackageSpec(; path) for path in (".", "lib/EnzymeCore")]); Pkg.instantiate()' | |
| julia --color=yes --project=test/integration/${{ matrix.test }} --threads=auto --check-bounds=yes test/integration/${{ matrix.test }}/runtests.jl | |
| shell: bash | |
| docs: | |
| timeout-minutes: 20 | |
| name: Documentation | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: julia-actions/setup-julia@v2 | |
| with: | |
| version: '1' | |
| - uses: julia-actions/cache@v2 | |
| - run: | | |
| julia --color=yes --project=docs -e ' | |
| using Pkg | |
| Pkg.instantiate()' | |
| env: | |
| JULIA_PKG_SERVER_REGISTRY_PREFERENCE: eager | |
| - run: | | |
| julia --color=yes --project=docs -e ' | |
| using Documenter: DocMeta, doctest | |
| using Enzyme | |
| DocMeta.setdocmeta!(Enzyme, :DocTestSetup, :(using Enzyme); recursive=true) | |
| doctest(Enzyme)' | |
| - run: julia --color=yes --project=docs docs/make.jl | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} |