[llvm] workflows: Rewrite build-ci-container to work on larger runners (PR #117353)
Aiden Grossman via llvm-commits
llvm-commits at lists.llvm.org
Sat Nov 23 17:50:20 PST 2024
================
@@ -18,95 +18,70 @@ on:
- '.github/workflows/containers/github-action-ci/**'
jobs:
- # TODO(boomanaiden154): Switch this back to a single stage build when we can
- # run this on the self-hosted runners and don't have to do it this way to
- # avoid timeouts.
- build-ci-container-stage1:
+ build-ci-container:
if: github.repository_owner == 'llvm'
- runs-on: ubuntu-latest
+ runs-on: depot-ubuntu-24.04-16
+ outputs:
+ container-name: ${{ steps.vars.outputs.container-name }}
+ container-name-tag: ${{ steps.vars.outputs.container-name-tag }}
+ container-filename: ${{ steps.vars.outputs.container-filename }}
steps:
- name: Checkout LLVM
uses: actions/checkout at v4
with:
sparse-checkout: .github/workflows/containers/github-action-ci/
- - name: Change podman Root Direcotry
- run: |
- mkdir -p ~/.config/containers
- sudo mkdir -p /mnt/podman
- sudo chown `whoami`:`whoami` /mnt/podman
- cp ./.github/workflows/containers/github-action-ci/storage.conf ~/.config/containers/storage.conf
- podman info
- - name: Build container stage1
- working-directory: ./.github/workflows/containers/github-action-ci/
- run: |
- podman build -t stage1-toolchain --target stage1-toolchain -f stage1.Dockerfile .
- - name: Save container image
- run: |
- podman save stage1-toolchain > stage1-toolchain.tar
- - name: Upload container image
- uses: actions/upload-artifact at v4
- with:
- name: stage1-toolchain
- path: stage1-toolchain.tar
- retention-days: 1
- build-ci-container-stage2:
- if: github.repository_owner == 'llvm'
- runs-on: ubuntu-latest
- needs: build-ci-container-stage1
- permissions:
- packages: write
- steps:
- name: Write Variables
id: vars
run: |
tag=`date +%s`
container_name="ghcr.io/$GITHUB_REPOSITORY_OWNER/ci-ubuntu-22.04"
echo "container-name=$container_name" >> $GITHUB_OUTPUT
echo "container-name-tag=$container_name:$tag" >> $GITHUB_OUTPUT
-
- - name: Checkout LLVM
- uses: actions/checkout at v4
- with:
- sparse-checkout: .github/workflows/containers/github-action-ci/
-
- - name: Change podman Root Direcotry
+ echo "container-filename=$(echo $container_name:$tag | sed -e 's/\//-/g' -e 's/:/-/g').tar" >> $GITHUB_OUTPUT
+ - name: Build container
+ working-directory: ./.github/workflows/containers/github-action-ci/
run: |
- mkdir -p ~/.config/containers
- sudo mkdir -p /mnt/podman
- sudo chown `whoami`:`whoami` /mnt/podman
- cp ./.github/workflows/containers/github-action-ci/storage.conf ~/.config/containers/storage.conf
- podman info
+ podman build -t ${{ steps.vars.outputs.container-name-tag }} -f stage1.Dockerfile .
- # Download the container image into /mnt/podman rather than
- # $GITHUB_WORKSPACE to avoid space limitations on the default drive
- # and use the permissions setup for /mnt/podman.
- - name: Download stage1-toolchain
- uses: actions/download-artifact at v4
- with:
- name: stage1-toolchain
- path: /mnt/podman
-
- - name: Load stage1-toolchain
+ - name: Save container image
run: |
- podman load -i /mnt/podman/stage1-toolchain.tar
+ podman save ${{ steps.vars.outputs.container-name-tag }} > ${{ steps.vars.outputs.container-filename }}
----------------
boomanaiden154 wrote:
Maybe add a comment here on why we're saving it? Wasn't immediately obvious to me before reading below.
https://github.com/llvm/llvm-project/pull/117353
More information about the llvm-commits
mailing list