Skip to content

Bump js-yaml from 4.1.0 to 4.1.1 in /app/next-client-app in the npm_a… #15

Bump js-yaml from 4.1.0 to 4.1.1 in /app/next-client-app in the npm_a…

Bump js-yaml from 4.1.0 to 4.1.1 in /app/next-client-app in the npm_a… #15

Workflow file for this run

# Build and Push Edge Images
#
# This workflow builds Docker images from the master branch and pushes them to the registry.
# These images are tagged as 'edge' and represent the latest production-ready code.
#
# When to use:
# - Automatically triggered when code is pushed to master
# - Manually triggered to rebuild edge images
#
# What it does:
# - Builds backend, frontend, and Airflow images from master branch
# - Tags images as 'edge', commit SHA, and timestamp
# - Pushes images to GitHub Container Registry
# - Triggers the deploy.test.yml workflow when completed
name: Build and Push Edge Images
on:
push:
branches:
- master
workflow_dispatch:
env:
app-name: carrot
repo-owner: health-informatics-uon
registry: ghcr.io
permissions:
contents: read
packages: write
jobs:
build-and-push-images:
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Set up QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0
- name: Docker Login
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
with:
registry: ${{ env.registry }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set timestamp env var
run: echo "RUN_TIMESTAMP=$(TZ="Etc/UTC" date +'%Y%m%d%H%M%S')" >> $GITHUB_ENV
# Build and push backend
- name: Extract backend Docker metadata
id: backend_meta
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
with:
images: ${{ env.registry }}/${{ env.repo-owner }}/${{ env.app-name }}/backend
tags: |
type=raw,value=edge
type=raw,value=${{ github.sha }}
type=raw,value=${{ env.RUN_TIMESTAMP }}
- name: Build and push backend image
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
with:
context: ./app
file: ./app/api/Dockerfile
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.backend_meta.outputs.tags }}
# Build and push frontend
- name: Extract frontend Docker metadata
id: frontend_meta
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
with:
images: ${{ env.registry }}/${{ env.repo-owner }}/${{ env.app-name }}/frontend
tags: |
type=raw,value=edge
type=raw,value=${{ github.sha }}
type=raw,value=${{ env.RUN_TIMESTAMP }}
- name: Build and push frontend image
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
with:
context: ./app/next-client-app
file: ./app/next-client-app/Dockerfile
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.frontend_meta.outputs.tags }}
# Build and push Airflow webserver
- name: Extract Airflow webserver Docker metadata
id: airflow_webserver_meta
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
with:
images: ${{ env.registry }}/${{ env.repo-owner }}/${{ env.app-name }}/airflow-webserver
tags: |
type=raw,value=edge
type=raw,value=${{ github.sha }}
type=raw,value=${{ env.RUN_TIMESTAMP }}
- name: Build and push Airflow webserver image
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
with:
context: ./app/airflow
file: ./app/airflow/Dockerfile
build-args: AIRFLOW_COMPONENT=webserver
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.airflow_webserver_meta.outputs.tags }}
# Build and push Airflow scheduler
- name: Extract Airflow scheduler Docker metadata
id: airflow_scheduler_meta
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
with:
images: ${{ env.registry }}/${{ env.repo-owner }}/${{ env.app-name }}/airflow-scheduler
tags: |
type=raw,value=edge
type=raw,value=${{ github.sha }}
type=raw,value=${{ env.RUN_TIMESTAMP }}
- name: Build and push Airflow scheduler image
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
with:
context: ./app/airflow
file: ./app/airflow/Dockerfile
build-args: AIRFLOW_COMPONENT=scheduler
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.airflow_scheduler_meta.outputs.tags }}