Skip to content

Resolve all 30 Dependabot alerts (client): webpack 5 + jest 30 modernization #69

Resolve all 30 Dependabot alerts (client): webpack 5 + jest 30 modernization

Resolve all 30 Dependabot alerts (client): webpack 5 + jest 30 modernization #69

Workflow file for this run

name: Delivery
on:
pull_request:
types: [synchronize, opened, reopened]
push:
branches: [master]
release:
# Note: a current limitation is that when a release is edited after publication, then the Docker tags are not automatically updated.
types: [published]
schedule:
# Run every monday on 9:00 in the morning (UTC).
- cron: "0 9 * * 1"
workflow_dispatch:
permissions:
contents: write
packages: write
security-events: write
jobs:
test:
runs-on: ubuntu-latest
defaults:
run:
working-directory: client
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: lts/*
cache: npm
cache-dependency-path: client/package-lock.json
- run: npm ci
- run: npm test
- run: npm run build
- uses: actions/upload-artifact@v4
with:
name: client-dist
path: client/dist/
retention-days: 1
e2e:
needs: test
runs-on: ubuntu-latest
defaults:
run:
working-directory: client
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: lts/*
cache: npm
cache-dependency-path: client/package-lock.json
- run: npm ci
- uses: actions/download-artifact@v4
with:
name: client-dist
path: client/dist/
- run: npx playwright install --with-deps chromium
- run: npm run test:e2e
publish-docker-image:
needs: [e2e]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository }}
tags: |
type=semver,pattern={{major}}.{{minor}}.{{patch}}
type=raw,value=edge
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build container and export to local Docker
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile.prod
load: true
tags: local/${{ github.repository }}:scan
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Scan Image
uses: anchore/scan-action@e1165082ffb1fe366ebaf02d8526e7c4989ea9d2 # v7.4.0
id: scan
with:
image: local/${{ github.repository }}:scan
only-fixed: true
fail-build: true
severity-cutoff: critical
output-format: sarif
- name: Upload Anchore scan SARIF report
uses: github/codeql-action/upload-sarif@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0
if: ${{ !cancelled() }}
with:
sarif_file: ${{ steps.scan.outputs.sarif }}
- name: Push image to GitHub Container Registry
uses: docker/build-push-action@v5
if: ${{ github.event_name != 'schedule' }}
with:
file: Dockerfile.prod
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}