From 3378d4b89211fb830093775ef8530c228dd39016 Mon Sep 17 00:00:00 2001 From: Lebaud Antoine Date: Fri, 16 Feb 2024 10:07:51 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=B7(frontend)=20push=20frontend=20imag?= =?UTF-8?q?e=20to=20DockerHub?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Build and push the frontend image to DockerHub. Backend an Frontend images will be stored in separate repos: people-backend and people-frontend. It will be cleaner than managing all images in a single repo and creating tags to discriminate frontend and backend images. CI code is not factorized between jobs. Frontend and backend jobs could be a bit factorized. Hovewer it might be a bit premature, and I prefer having them decoupled for now. @rouja suggested to introduce a custom github actions to avoid maintaining the same logic accross different repo. Please not as the images are built from the same Dockerfile, it's important to precise the right target. --- .github/workflows/docker-hub.yml | 37 ++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-hub.yml b/.github/workflows/docker-hub.yml index 0c21857..72f4c1f 100644 --- a/.github/workflows/docker-hub.yml +++ b/.github/workflows/docker-hub.yml @@ -12,7 +12,7 @@ on: - 'main' jobs: - build-and-push: + build-and-push-backend: runs-on: ubuntu-latest steps: - @@ -23,7 +23,7 @@ jobs: id: meta uses: docker/metadata-action@v5 with: - images: lasuite/people + images: lasuite/people-backend - name: Load sops secrets uses: rouja/actions-sops@main @@ -39,6 +39,39 @@ jobs: uses: docker/build-push-action@v5 with: context: . + target: production + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + build-and-push-frontend: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: lasuite/people-frontend + - + name: Load sops secrets + uses: rouja/actions-sops@main + with: + secret-file: .github/workflows/secrets.enc.env + age-key: ${{ secrets.SOPS_PRIVATE }} + - + name: Login to DockerHub + if: github.event_name != 'pull_request' + run: echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USER" --password-stdin + - + name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + target: frontend push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }}