Skip to content

Commit

Permalink
ci(docker): push multiple prebuilt images
Browse files Browse the repository at this point in the history
  • Loading branch information
antoinezanardi committed Aug 19, 2024
1 parent be4784d commit 32838b1
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 50 deletions.
67 changes: 22 additions & 45 deletions .github/workflows/deploy-to-production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,21 @@ jobs:
upload-to-docker-hub:
name: Upload image with tag version to Docker Hub 🐳
runs-on: ubuntu-latest
strategy:
matrix:
include:
- tag: prod-fr
NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL: "https://api.werewolves-assistant.com"
NUXT_PUBLIC_DEFAULT_LOCALE: "fr"
- tag: prod-en
NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL: "https://api.werewolves-assistant.com"
NUXT_PUBLIC_DEFAULT_LOCALE: "en"
- tag: local-prod-fr
NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL: "http://localhost:9191"
NUXT_PUBLIC_DEFAULT_LOCALE: "fr"
- tag: local-prod-en
NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL: "http://localhost:9191"
NUXT_PUBLIC_DEFAULT_LOCALE: "en"
steps:
- name: Checkout GitHub repository 📡
uses: actions/checkout@v4
Expand All @@ -23,53 +38,15 @@ jobs:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}

- name: Build and push Docker image on tag name 🐳
- name: Build and push Docker images 🐳
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
push: true
tags: antoinezanardi/werewolves-assistant-web:${{ github.event.release.tag_name }}

- name: Build and push Docker image on latest 🐳
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
push: true
tags: antoinezanardi/werewolves-assistant-web:latest

deploy:
name: Deploy to production 🚀
runs-on: ubuntu-latest
steps:
- name: Setup GitHub repository 🔧
uses: actions/checkout@v4
with:
ref: ${{ github.event.release.tag_name }}
fetch-depth: 0
fetch-tags: true

- name: Auth to GCP ☁️
uses: 'google-github-actions/auth@v2'
with:
credentials_json: ${{ secrets.PRODUCTION_GCP_SA_KEY }}

- name: Transform and format version for GCP ♻️
id: format-version-for-gcp
run: |
version=${{ github.event.release.tag_name }}
version=${version//./-}
echo "FORMATTED_VERSION_FOR_GCP=${version}" >> $GITHUB_OUTPUT
- name: Deploy to production 🚀
uses: 'google-github-actions/deploy-appengine@v2'
with:
project_id: ${{ secrets.PRODUCTION_GCP_PROJECT_ID }}
env_vars: |-
NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL=${{ secrets.PRODUCTION_WEREWOLVES_ASSISTANT_API_BASE_URL }}
NUXT_PUBLIC_DEFAULT_LOCALE=${{ secrets.PRODUCTION_DEFAULT_LOCALE }}
build_env_vars: |-
NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL=${{ secrets.PRODUCTION_WEREWOLVES_ASSISTANT_API_BASE_URL }}
NUXT_PUBLIC_DEFAULT_LOCALE=${{ secrets.PRODUCTION_DEFAULT_LOCALE }}
flags: "--version=${{ steps.format-version-for-gcp.outputs.FORMATTED_VERSION_FOR_GCP }}"
tags: |
antoinezanardi/werewolves-assistant-web:${{ matrix.tag }}-${{ github.event.release.tag_name }}
antoinezanardi/werewolves-assistant-web:${{ matrix.tag }}-latest
build-args: |
NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL=${{ matrix.NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL }}
NUXT_PUBLIC_DEFAULT_LOCALE=${{ matrix.NUXT_PUBLIC_DEFAULT_LOCALE }}
22 changes: 20 additions & 2 deletions .github/workflows/push-on-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,21 @@ jobs:
upload-to-docker-hub:
name: Upload image with develop tag to Docker Hub 🐳
runs-on: ubuntu-latest
strategy:
matrix:
include:
- tag: preprod-fr
NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL: "https://preprod.api.werewolves-assistant.com"
NUXT_PUBLIC_DEFAULT_LOCALE: "fr"
- tag: preprod-en
NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL: "https://preprod.api.werewolves-assistant.com"
NUXT_PUBLIC_DEFAULT_LOCALE: "en"
- tag: local-preprod-fr
NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL: "localhost:9090"
NUXT_PUBLIC_DEFAULT_LOCALE: "fr"
- tag: local-preprod-en
NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL: "localhost:9090"
NUXT_PUBLIC_DEFAULT_LOCALE: "en"
steps:
- name: Checkout GitHub repository 📡
uses: actions/checkout@v4
Expand All @@ -23,10 +38,13 @@ jobs:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}

- name: Build and push Docker image 🐳
- name: Build and push Docker images 🐳
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
push: true
tags: antoinezanardi/werewolves-assistant-web:develop
tags: antoinezanardi/werewolves-assistant-web:${{ matrix.tag }}
build-args: |
NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL=${{ matrix.NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL }}
NUXT_PUBLIC_DEFAULT_LOCALE=${{ matrix.NUXT_PUBLIC_DEFAULT_LOCALE }}
6 changes: 6 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
ENV CI="true"

ARG NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL
ARG NUXT_PUBLIC_DEFAULT_LOCALE

RUN corepack enable

USER node
Expand Down Expand Up @@ -32,6 +35,9 @@ ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
ENV CI="true"

ARG NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL
ARG NUXT_PUBLIC_DEFAULT_LOCALE

RUN corepack enable

USER node
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ services:
depends_on:
- api
image: antoinezanardi/werewolves-assistant-web:develop
environment:
NUXT_PUBLIC_WEREWOLVES_ASSISTANT_API_BASE_URL: "http://localhost:9191"
NUXT_PUBLIC_DEFAULT_LOCALE: "en"
ports:
- "3000:3000"
restart: unless-stopped
Expand Down

0 comments on commit 32838b1

Please sign in to comment.