| name: Bazel |
| |
| on: |
| schedule: |
| - cron: 0 0 * * * |
| push: |
| branches: |
| - main |
| paths: |
| - '.github/workflows/enzyme-bazel.yml' |
| - 'enzyme/Enzyme/**' |
| - 'enzyme/includes/**' |
| - 'enzyme/test/**' |
| - 'enzyme/tools/**' |
| - 'enzyme/BUILD' |
| - 'enzyme/WORKSPACE' |
| pull_request: |
| branches: |
| - main |
| paths: |
| - '.github/workflows/enzyme-bazel.yml' |
| - 'enzyme/Enzyme/**' |
| - 'enzyme/includes/**' |
| - 'enzyme/test/**' |
| - 'enzyme/tools/**' |
| - 'enzyme/BUILD' |
| - 'enzyme/WORKSPACE' |
| merge_group: |
| |
| 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 Bazel Build - ${{ matrix.os }} |
| runs-on: ${{ matrix.os }} |
| strategy: |
| fail-fast: false |
| matrix: |
| os: |
| - ubuntu-latest |
| build: |
| - Release |
| llbuild: |
| - Release |
| timeout-minutes: 500 |
| steps: |
| - name: Install Python dependencies |
| run: python -m pip install lit |
| - uses: actions/checkout@v4 |
| - uses: actions/checkout@v4 |
| with: |
| repository: 'llvm/llvm-project' |
| path: 'llvm-project' |
| - uses: bazel-contrib/setup-bazel@0.14.0 |
| name: Set up Bazel |
| with: |
| # Avoid downloading Bazel every time. |
| bazelisk-cache: true |
| # Store build cache per workflow. |
| disk-cache: ${{ github.workflow }}-${{ matrix.os }}-${{ matrix.build }}-${{ matrix.llbuild }} |
| # Share repository cache between workflows. |
| repository-cache: true |
| bazelisk-version: 1.x |
| - name: Build Enzyme |
| run: | |
| cd enzyme |
| bazel build --color=yes :EnzymeStatic :enzymemlir-opt |
| - name: Test Enzyme |
| run: | |
| cd enzyme |
| bazel test --color=yes --test_output=errors ... |