Skip to content

Commit

Permalink
refactor: add docker build action
Browse files Browse the repository at this point in the history
  • Loading branch information
marcellmueller committed Jun 7, 2024
1 parent 87d195e commit 8203d27
Show file tree
Hide file tree
Showing 2 changed files with 95 additions and 126 deletions.
79 changes: 79 additions & 0 deletions .github/actions/docker-build/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: "Build and push Docker image"
description: "Reusable action to build and push a Docker image"

inputs:
project:
description: "Nx project name"
required: true
image_url:
description: "Docker image URL"
required: true
registry:
description: "Docker registry"
default: "ghcr.io"
cache_key:
description: "Unique cache key name"
required: true

runs:
using: composite
defaults:
run:
working-directory: ./bciers
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Docker metadata
id: meta
uses: docker/metadata-action@v3
with:
images: ${{ inputs.image_url }}
tags: |
type=sha,format=long,prefix=
latest
type=ref,event=pr
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
run: |
corepack enable
yarn install --immutable
cd ../bciers && yarn install --immutable
- uses: actions/setup-node@v3
- name: Derive appropriate SHAs for base and head for `nx affected` commands
uses: nrwl/nx-set-shas@v4
with:
# This will need to be updated when giraffe-develop merges with develop
main-branch-name: "develop"
- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-${{ inputs.cache_key }}${{ github.sha }}
restore-keys: |
${{ runner.os }}-${{ inputs.cache_key }}
- name: Build images
env:
INPUT_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
INPUT_PUSH: true
INPUT_TAGS: ${{ steps.meta.outputs.tags }}
INPUT_LABELS: ${{ steps.meta.output.labels }}
INPUT_CACHE_FROM: type=local,src=/tmp/.buildx-cache
INPUT_CACHE_TO: type=local,dest=/tmp/.buildx-cache-new
run: |
npx nx container ${{ inputs.project }} --skip-nx-cache
# Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
142 changes: 16 additions & 126 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,22 @@ jobs:
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
nx-docker-build-registration1:
uses: ./.github/actions/docker-build
with:
project: registration1
image_url: ghcr.io/bcgov/cas-reg1-frontend
registry: ghcr.io
cache_key: buildx-bciers-registration1

nx-docker-build-reporting:
uses: ./.github/actions/docker-build
with:
project: reporting
image_url: ghcr.io/bcgov/cas-rep-frontend
registry: ghcr.io
cache_key: buildx-bciers-reporting

# nx-docker-build-registration:
# runs-on: ubuntu-latest
# defaults:
Expand Down Expand Up @@ -122,129 +138,3 @@ jobs:
# run: |
# rm -rf /tmp/.buildx-cache
# mv /tmp/.buildx-cache-new /tmp/.buildx-cache

nx-docker-build-registration1:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./bciers
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Docker metadata
id: meta
uses: docker/metadata-action@v3
with:
images: ghcr.io/bcgov/cas-reg1-frontend
tags: |
type=sha,format=long,prefix=
latest
type=ref,event=pr
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
run: |
corepack enable
yarn install --immutable
cd ../bciers && yarn install --immutable
- uses: actions/setup-node@v3
- name: Derive appropriate SHAs for base and head for `nx affected` commands
uses: nrwl/nx-set-shas@v4
with:
# This will need to be updated when giraffe-develop merges with develop
main-branch-name: "develop"
- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-bciers-registration1${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-bciers-registration1
- name: Build images
env:
INPUT_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
INPUT_PUSH: true
INPUT_TAGS: ${{ steps.meta.outputs.tags }}
INPUT_LABELS: ${{ steps.meta.output.labels }}
INPUT_CACHE_FROM: type=local,src=/tmp/.buildx-cache
INPUT_CACHE_TO: type=local,dest=/tmp/.buildx-cache-new
run: |
npx nx container registration1 --skip-nx-cache
# Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
nx-docker-build-reporting:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./bciers
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Docker metadata
id: meta
uses: docker/metadata-action@v3
with:
images: ghcr.io/bcgov/cas-rep-frontend
tags: |
type=sha,format=long,prefix=
latest
type=ref,event=pr
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Install dependencies
run: |
corepack enable
yarn install --immutable
cd ../bciers && yarn install --immutable
- uses: actions/setup-node@v3
- name: Derive appropriate SHAs for base and head for `nx affected` commands
uses: nrwl/nx-set-shas@v4
with:
# This will need to be updated when giraffe-develop merges with develop
main-branch-name: "develop"
- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-bciers-reporting${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-bciers-reporting
- name: Build images
env:
INPUT_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
INPUT_PUSH: true
INPUT_TAGS: ${{ steps.meta.outputs.tags }}
INPUT_LABELS: ${{ steps.meta.output.labels }}
INPUT_CACHE_FROM: type=local,src=/tmp/.buildx-cache
INPUT_CACHE_TO: type=local,dest=/tmp/.buildx-cache-new
run: |
npx nx container reporting --skip-nx-cache
# Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache

0 comments on commit 8203d27

Please sign in to comment.