From 7b0eff4d84c71dd2eeeff5c472233bf60ac57653 Mon Sep 17 00:00:00 2001 From: Ben Busby Date: Fri, 17 Jan 2025 11:53:22 -0700 Subject: [PATCH] Add buildx workflow for building + uploading image to Docker Hub --- .dockerignore | 4 +++ .github/workflows/buildx.yml | 59 ++++++++++++++++++++++++++++++++++++ Dockerfile | 1 - 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/buildx.yml diff --git a/.dockerignore b/.dockerignore index 4d782d0..c6775e4 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,7 @@ .git +.github *.env cli +out +node_modules +uploads diff --git a/.github/workflows/buildx.yml b/.github/workflows/buildx.yml new file mode 100644 index 0000000..2f1fc76 --- /dev/null +++ b/.github/workflows/buildx.yml @@ -0,0 +1,59 @@ +name: buildx + +on: + workflow_run: + workflows: ["go-tests", "web-tests", "vuln-scan"] + branches: [main] + types: + - completed + push: + tags: + - '*' + +jobs: + on-success: + runs-on: ubuntu-latest + steps: + - name: Wait for tests to succeed + if: ${{ github.event.workflow_run.conclusion != 'success' && startsWith(github.ref, 'refs/tags') != true }} + run: exit 1 + - name: checkout code + uses: actions/checkout@v2 + - name: install buildx + id: buildx + uses: crazy-max/ghaction-docker-buildx@v1 + with: + version: latest + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} + - name: Login to ghcr.io + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: build and push the image + if: startsWith(github.ref, 'refs/heads/main') && github.actor == 'benbusby' + run: | + docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + docker buildx ls + docker buildx build --push \ + --tag benbusby/yeetfile:latest \ + --platform linux/amd64,linux/arm/v7,linux/arm64 . + docker buildx build --push \ + --tag ghcr.io/benbusby/yeetfile:latest \ + --platform linux/amd64,linux/arm/v7,linux/arm64 . + - name: build and push tag + if: startsWith(github.ref, 'refs/tags') + run: | + docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + docker buildx ls + docker buildx build --push \ + --tag benbusby/yeetfile:${GITHUB_REF#refs/*/v}\ + --platform linux/amd64,linux/arm/v7,linux/arm64 . + docker buildx build --push \ + --tag ghcr.io/benbusby/yeetfile:${GITHUB_REF#refs/*/v}\ + --platform linux/amd64,linux/arm/v7,linux/arm64 diff --git a/Dockerfile b/Dockerfile index c344780..51b7289 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,7 +25,6 @@ FROM alpine:latest WORKDIR /app COPY --from=builder /app/yeetfile-server /app RUN chmod +x /app/yeetfile-server -RUN apk add --update curl EXPOSE 8090 CMD ["/app/yeetfile-server"]