| name: Build CI Container |
| |
| permissions: |
| contents: read |
| |
| on: |
| push: |
| branches: |
| - main |
| paths: |
| - .github/workflows/build-ci-container.yml |
| - '.github/workflows/containers/github-action-ci/**' |
| - '.github/actions/build-container/**' |
| - '.github/actions/push-container/**' |
| pull_request: |
| paths: |
| - .github/workflows/build-ci-container.yml |
| - '.github/workflows/containers/github-action-ci/**' |
| - '.github/actions/build-container/**' |
| - '.github/actions/push-container/**' |
| |
| jobs: |
| build-ci-container: |
| name: Build Container ${{ matrix.container-name }} ${{ (contains(matrix.runs-on, 'arm') && 'ARM64') || 'X64' }} |
| if: github.repository_owner == 'llvm' |
| runs-on: ${{ matrix.runs-on }} |
| strategy: |
| matrix: |
| runs-on: |
| - depot-ubuntu-24.04-16 |
| - depot-ubuntu-24.04-arm-16 |
| container-name: |
| - '' |
| - agent |
| test-command: |
| - cd $HOME && printf '#include <iostream>\nint main(int argc, char **argv) { std::cout << "Hello\\n"; }' | clang++ -x c++ - && ./a.out | grep Hello |
| steps: |
| - name: Checkout LLVM |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 |
| with: |
| persist-credentials: false |
| sparse-checkout: | |
| .github/workflows/containers/github-action-ci/ |
| .github/actions/build-container |
| |
| - name: Build Container |
| uses: ./.github/actions/build-container |
| with: |
| container-name: ci-ubuntu-24.04${{ matrix.container-name && format('-{0}', matrix.container-name)}} |
| context: .github/workflows/containers/github-action-ci/ |
| dockerfile: .github/workflows/containers/github-action-ci/Dockerfile |
| target: ci-container${{ matrix.container-name && format('-{0}', matrix.container-name) }} |
| test-command: ${{ matrix.test-command }} |
| |
| push-ci-container: |
| if: github.event_name == 'push' |
| needs: |
| - build-ci-container |
| permissions: |
| packages: write |
| runs-on: ubuntu-24.04 |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| steps: |
| - name: Checkout LLVM |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 |
| with: |
| persist-credentials: false |
| sparse-checkout: | |
| .github/actions/push-container |
| |
| - uses: ./.github/actions/push-container |
| with: |
| token: ${{ secrets.GITHUB_TOKEN }} |