[GitHub][CI] Factor out duplicate container building code into composite actions #228
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: Build CI Container | |
| permissions: | |
| contents: read | |
| on: | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - .github/workflows/build-ci-container.yml | |
| - '.github/workflows/containers/github-action-ci/**' | |
| - '.github/workflows/build-container/**' | |
| - '.github/workflows/push-container/**' | |
| pull_request: | |
| paths: | |
| - .github/workflows/build-ci-container.yml | |
| - '.github/workflows/containers/github-action-ci/**' | |
| - '.github/workflows/build-container/**' | |
| - '.github/workflows/push-container/**' | |
| jobs: | |
| build-ci-container: | |
| 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| sparse-checkout: | | |
| .github/workflows/containers/github-action-ci/ | |
| .github/workflows/build-container | |
| - name: Build Container | |
| uses: ./.github/workflows/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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| sparse-checkout: | | |
| .github/workflows/push-container | |
| - uses: ./.github/workflows/push-container | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} |