From f98ed40130fee7194233f395b136e3ac261d73f8 Mon Sep 17 00:00:00 2001 From: Sai Karthik <11899221+kskarthik@users.noreply.github.com> Date: Tue, 22 Oct 2024 04:38:21 +0530 Subject: [PATCH] ci: build multi arch docker images using buildx (#265) - ignore docker login in pull requests -fix release path - use official action for push as well - mv tags to build step --- .github/workflows/docker.yml | 35 +++++++++++++++++++++++++++-------- Dockerfile | 5 +++-- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 3c851277a..d4f459aec 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -2,8 +2,9 @@ name: Docker CI on: push: - # runs on every commit - branches: ["master"] + branches: + - master + pull_request: permissions: contents: read @@ -15,11 +16,29 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Build the docker image - run: docker build -t steelscheme/steel:latest . - - name: Authenticate to the Docker Hub - run: docker login -u steelscheme -p ${{ secrets.DOCKER_HUB_PWD }} + if: ${{ github.event_name != 'pull_request' }} + uses: docker/login-action@v3 + with: + username: steelscheme + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Setup Docker Buildx + uses: docker/setup-buildx-action@v3 + + # disable push on merge requests + - name: Test Build + uses: docker/build-push-action@v6 + if: ${{ github.event_name == 'pull_request' }} + with: + push: false + platforms: linux/amd64,linux/arm64 + tags: steelscheme/steel:latest - - name: Push the docker image - run: docker push steelscheme/steel:latest + - name: Build and push the docker image + uses: docker/build-push-action@v6 + if: ${{ github.event_name != 'pull_request' }} + with: + push: true + platforms: linux/amd64,linux/arm64 + tags: steelscheme/steel:latest diff --git a/Dockerfile b/Dockerfile index 98cd602ac..48fa822b0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM rust:slim as build +FROM rust:slim AS build COPY . /steel/ @@ -16,13 +16,14 @@ RUN mkdir -p /lib/steel/ ENV STEEL_HOME="/lib/steel" RUN cargo build --release + RUN cargo install --path crates/cargo-steel-lib RUN cd cogs && cargo run -- install.scm FROM rust:slim -COPY --from=build /steel/target/debug/steel /usr/local/bin +COPY --from=build /steel/target/release/steel /usr/local/bin COPY --from=build /lib/steel /lib/