From e78ee3237d68301e4e2c9f74b4807852efe77f09 Mon Sep 17 00:00:00 2001 From: penumbra23 Date: Wed, 3 Jul 2024 14:15:49 +0200 Subject: [PATCH] Move chronicles and tester to buildah action --- .github/workflows/merge-docker-chronicle.yaml | 33 ++++++++++--------- .github/workflows/merge-docker-tester.yaml | 25 ++++++-------- .github/workflows/merge-docker-timenode.yaml | 14 ++++---- config/docker/Dockerfile.chronicle-release | 3 +- ...le.release => Dockerfile.timenode-release} | 0 5 files changed, 37 insertions(+), 38 deletions(-) rename config/docker/{Dockerfile.release => Dockerfile.timenode-release} (100%) diff --git a/.github/workflows/merge-docker-chronicle.yaml b/.github/workflows/merge-docker-chronicle.yaml index 8de7e081f..ddf284b2a 100644 --- a/.github/workflows/merge-docker-chronicle.yaml +++ b/.github/workflows/merge-docker-chronicle.yaml @@ -1,5 +1,6 @@ name: Build Docker chronicle image on: + pull_request: push: paths: - '.github/workflows/merge-docker-chronicle.yaml' @@ -51,24 +52,26 @@ jobs: steps: - name: Fetch latest code uses: actions/checkout@v3 - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - name: Login to Docker Hub - uses: docker/login-action@v2 + - name: Create target dir + run: mkdir ${{ github.workspace }}/target + - name: Cache Rust deps + uses: actions/cache@v3 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + path: ${{ github.workspace }}/target/${{matrix.profile}} + key: docker-chronicle-${{ hashFiles('Cargo.lock') }} - name: Build and push - uses: docker/build-push-action@v4 + uses: ./.github/actions/buildah-action with: + image_name: ${{ env.DOCKER_REPO }}-${{ matrix.image }}:${{ needs.set-tags.outputs.commit_hash8 }} + containerfile: ./config/docker/Dockerfile.chronicle-release context: . - push: true - tags: | - ${{ env.DOCKER_REPO }}-${{ matrix.image }}:${{ needs.set-tags.outputs.commit_hash8 }} - ${{ env.DOCKER_REPO }}:latest - file: config/docker/Dockerfile.chronicle-release - build-args: |- + volume: ${{ github.workspace }}/target:/build/target + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + registry: docker.io + push: 'true' + build_args: | VCS_REF=${{ needs.set-tags.outputs.commit_hash8 }} PROFILE=${{ matrix.profile }} + + diff --git a/.github/workflows/merge-docker-tester.yaml b/.github/workflows/merge-docker-tester.yaml index c29f22114..591b36342 100644 --- a/.github/workflows/merge-docker-tester.yaml +++ b/.github/workflows/merge-docker-tester.yaml @@ -1,5 +1,6 @@ name: Build Docker tester image on: + pull_request: push: paths: - '.github/workflows/merge-docker-tester.yaml' @@ -44,15 +45,6 @@ jobs: uses: actions/checkout@v3 with: submodules: recursive - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - name: Login to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Setup Cargo uses: actions-rust-lang/setup-rust-toolchain@v1 with: @@ -68,11 +60,14 @@ jobs: - name: Copy contracts run: cp -r target/release/tester tester-bin - name: Build and push - uses: docker/build-push-action@v4 + uses: ./.github/actions/buildah-action with: + image_name: ${{ env.DOCKER_REPO }}:${{ needs.set-tags.outputs.commit_hash8 }} + containerfile: ./config/docker/Dockerfile.tester-release context: . - push: true - tags: | - ${{ env.DOCKER_REPO }}:${{ needs.set-tags.outputs.commit_hash8 }} - ${{ env.DOCKER_REPO }}:latest - file: config/docker/Dockerfile.tester-release + volume: ${{ github.workspace }}/target:/build/target + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + registry: docker.io + push: 'true' + diff --git a/.github/workflows/merge-docker-timenode.yaml b/.github/workflows/merge-docker-timenode.yaml index d8333fa6c..5d09ac17f 100644 --- a/.github/workflows/merge-docker-timenode.yaml +++ b/.github/workflows/merge-docker-timenode.yaml @@ -37,12 +37,12 @@ jobs: - image: prod profile: production features: default - # - image: test - # profile: testnet - # features: default - # - image: dev - # profile: testnet - # features: development + - image: test + profile: testnet + features: default + - image: dev + profile: testnet + features: development steps: - name: Fetch latest code uses: actions/checkout@v3 @@ -57,7 +57,7 @@ jobs: uses: ./.github/actions/buildah-action with: image_name: ${{ env.DOCKER_REPO }}-${{ matrix.image }}:${{ needs.set-tags.outputs.commit_hash8 }} - containerfile: ./config/docker/Dockerfile.release + containerfile: ./config/docker/Dockerfile.timenode-release context: . volume: ${{ github.workspace }}/target:/build/target username: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/config/docker/Dockerfile.chronicle-release b/config/docker/Dockerfile.chronicle-release index e973b89af..1f3d2021b 100644 --- a/config/docker/Dockerfile.chronicle-release +++ b/config/docker/Dockerfile.chronicle-release @@ -7,6 +7,7 @@ WORKDIR /build COPY . . RUN CARGO_HTTP_CHECK_REVOKE=false cargo build --profile $PROFILE --locked -p chronicle +RUN mv /build/target/$PROFILE/chronicle /build/chronicle FROM ubuntu:22.04 @@ -20,5 +21,5 @@ LABEL description="Multistage Dockerfile for building Analog Chronicle" \ one.analog.image.source="https://github.com/Analog-Labs/timechain" \ one.analog.image.commit="${VCS_REF}" -COPY --from=builder /build/target/$PROFILE/chronicle chronicle +COPY --from=builder /build/chronicle chronicle ENTRYPOINT ["/chronicle"] \ No newline at end of file diff --git a/config/docker/Dockerfile.release b/config/docker/Dockerfile.timenode-release similarity index 100% rename from config/docker/Dockerfile.release rename to config/docker/Dockerfile.timenode-release