From bb2cde9aae01a23cfe812ccc72d9f95124c32b05 Mon Sep 17 00:00:00 2001 From: Illia Vysochyn Date: Fri, 28 Jun 2024 19:18:35 +0200 Subject: [PATCH] [#61287] WIP: workflows: Build and push dependency image Signed-off-by: Illia Vysochyn --- .../github-actions-cron-test-installer.yml | 39 ++++++++++++------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/.github/workflows/github-actions-cron-test-installer.yml b/.github/workflows/github-actions-cron-test-installer.yml index 644b7ad641..5b714fe63d 100644 --- a/.github/workflows/github-actions-cron-test-installer.yml +++ b/.github/workflows/github-actions-cron-test-installer.yml @@ -26,10 +26,11 @@ jobs: strategy: fail-fast: false matrix: - os: ["ubuntu20.04", "ubuntu22.04", "centos7"] + os: [["ubuntu20.04", "ubuntu:20.04"], ["ubuntu22.04", "ubuntu:22.04"], ["centos7", "centos:centos7"]] runs-on: ubuntu-latest env: - IMAGE: ghcr.io/antmicro/openroad-flow-scripts + IMAGE: ghcr.io/antmicro/openroad-flow-scripts-test-cache + IMAGE_DEPS: ghcr.io/antmicro/openroad-flow-scripts-test-cache-deps steps: - name: Check out repository code uses: actions/checkout@v3 @@ -45,24 +46,26 @@ jobs: sudo ifconfig docker0 down sudo brctl delbr docker0 sudo service docker restart + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - name: Run installer run: | - ./etc/DockerHelper.sh create -target=dev -os=${{ matrix.os }} + ./etc/DockerHelper.sh create -target=dev -os=${{ matrix.os[0] }} - name: Build project run: | - ./etc/DockerHelper.sh create -target=builder -os=${{ matrix.os }} + ./etc/DockerHelper.sh create -target=builder -os=${{ matrix.os[0] }} - name: Test build run: | - cmd="source ./env.sh ; yosys -help ; openroad -help ; make -C flow ;" - if [[ ${{ matrix.os }} == "centos7" ]]; then - cmd="source /opt/rh/devtoolset-8/enable; ${cmd}" - cmd="source /opt/rh/llvm-toolset-7.0/enable; ${cmd}" - cmd="source /opt/rh/rh-python38/enable; ${cmd}" + cmd="source ./env.sh && yosys -help && openroad -help && make -C flow ;" + if [[ ${{ matrix.os[0] }} == "centos7" ]]; then + cmd="source /opt/rh/devtoolset-8/enable && ${cmd}" + cmd="source /opt/rh/llvm-toolset-7.0/enable && ${cmd}" + cmd="source /opt/rh/rh-python38/enable && ${cmd}" fi - docker run openroad/flow-${{ matrix.os }}-builder /bin/bash -c "${cmd}" + docker run openroad/flow-${{ matrix.os[0] }}-builder /bin/bash -c "${cmd}" - name: Tag the image run: | - docker tag openroad/flow-${{ matrix.os }}-builder ${{ env.IMAGE }}/${{ matrix.os }} + docker tag openroad/flow-${{ matrix.os[0] }}-builder ${{ env.IMAGE }}/${{ matrix.os[0] }} - name: Login to GitHub Container Registry (GHCR) if: github.event_name != 'pull_request' && github.repository == 'antmicro/OpenROAD-flow-scripts' uses: docker/login-action@v2 @@ -70,7 +73,17 @@ jobs: registry: ghcr.io username: gha password: ${{ github.token }} - + - name: Build and export the dependencies image + uses: docker/build-push-action@v6 + with: + push: true + tags: ${{ env.IMAGE_DEPS }}/${{ matrix.os[0] }} + context: etc + file: docker/Dockerfile.dev + build_args: fromImage=${{ matrix.os[1] }} + cache-from: type=registry,ref=${{ env.IMAGE_DEPS }}/${{ matrix.os[0] }} + cache-to: type=registry,ref=${{ env.IMAGE_DEPS }}/${{ matrix.os[0] }},mode=max - name: Push container image to GitHub Container Registry (GHCR) if: github.event_name != 'pull_request' && github.repository == 'antmicro/OpenROAD-flow-scripts' - run: docker push ${{ env.IMAGE }}/${{ matrix.os }} + run: | + docker push ${{ env.IMAGE }}/${{ matrix.os[0] }}