Skip to content

Bump brace-expansion from 1.1.14 to 1.1.16 in /client #1111

Bump brace-expansion from 1.1.14 to 1.1.16 in /client

Bump brace-expansion from 1.1.14 to 1.1.16 in /client #1111

name: Build Docker Images
permissions:
contents: read
on:
pull_request:
jobs:
changes:
runs-on: ubuntu-latest
outputs:
skip_workflow: ${{ steps.changes.outputs.skip_workflow }}
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Determine if this PR should skip build/test jobs
id: changes
uses: dorny/paths-filter@v3
with:
predicate-quantifier: every
filters: |
skip_workflow:
- '**/*.md'
- 'img/**'
- 'docs/**'
- '.github/ISSUE_TEMPLATE/**'
- '.gitignore'
- '.gitattributes'
- '.dockerignore'
- 'LICENSE'
test:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.skip_workflow != 'true' }}
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup dotnet
uses: actions/setup-dotnet@v5
with:
dotnet-version: "10.0.x"
- name: Install dependencies
working-directory: ./server
run: dotnet restore
- name: Build
working-directory: ./server
run: dotnet build --no-restore
- name: Test with the dotnet CLI
working-directory: ./server
run: dotnet test --no-build
build-client:
runs-on: ${{ matrix.platform == 'linux/arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}
needs: test
strategy:
fail-fast: false
matrix:
platform:
- linux/amd64
- linux/arm64
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Determine changed paths
id: changes
uses: dorny/paths-filter@v3
with:
filters: |
build:
- 'client/**'
- 'client/**/package.json'
- 'compose.yml'
- 'compose.override.yml'
- '.github/workflows/**'
docs:
- 'README.md'
- 'img/**'
- 'docs/**'
- 'example/**'
- '.gitignore'
- '.gitattributes'
- '.dockerignore'
- 'LICENSE'
# Note: static YAML linters may report errors about accessing
# `steps.changes.outputs.build` or `env.BUILD_CHANGED`. These are
# false positives because the value is provided at runtime by
# `dorny/paths-filter`. GitHub Actions supports these expressions
# and the workflow will evaluate them correctly during execution.
- name: Export build flag
run: |
echo "BUILD_CHANGED=${{ steps.changes.outputs['build'] }}" >> $GITHUB_ENV
- name: Skip build (only docs/images changed)
if: ${{ env.BUILD_CHANGED == 'false' }}
run: echo "No build-relevant changes detected — skipping Docker build."
- name: Set up Docker Buildx
if: ${{ env.BUILD_CHANGED == 'true' }}
uses: docker/setup-buildx-action@v4
- name: Set up QEMU
if: ${{ env.BUILD_CHANGED == 'true' }}
uses: docker/setup-qemu-action@v4
- name: Extract metadata (tags, labels) for Docker
if: ${{ env.BUILD_CHANGED == 'true' }}
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/teelur/budget-board/client
- name: Build the Docker image
if: ${{ env.BUILD_CHANGED == 'true' }}
id: build
uses: docker/build-push-action@v7
with:
context: ./client
push: false
platforms: ${{ matrix.platform }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-server:
runs-on: ${{ matrix.platform == 'linux/arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}
needs: test
strategy:
fail-fast: false
matrix:
platform:
- linux/amd64
- linux/arm64
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Determine changed paths
id: changes
uses: dorny/paths-filter@v3
with:
filters: |
build:
- 'server/**'
- 'server/**/Dockerfile'
- 'compose.yml'
- 'compose.override.yml'
- '.github/workflows/**'
docs:
- 'README.md'
- 'img/**'
- 'docs/**'
- 'example/**'
- '.gitignore'
- '.gitattributes'
- '.dockerignore'
- 'LICENSE'
# Note: static YAML linters may report errors about accessing
# `steps.changes.outputs.build` or `env.BUILD_CHANGED`. These are
# false positives because the value is provided at runtime by
# `dorny/paths-filter`. GitHub Actions supports these expressions
# and the workflow will evaluate them correctly during execution.
- name: Export build flag
run: |
echo "BUILD_CHANGED=${{ steps.changes.outputs['build'] }}" >> $GITHUB_ENV
- name: Skip build (only docs/images changed)
if: ${{ env.BUILD_CHANGED == 'false' }}
run: echo "No build-relevant changes detected — skipping Docker build."
- name: Set up Docker Buildx
if: ${{ env.BUILD_CHANGED == 'true' }}
uses: docker/setup-buildx-action@v4
- name: Set up QEMU
if: ${{ env.BUILD_CHANGED == 'true' }}
uses: docker/setup-qemu-action@v4
- name: Extract metadata (tags, labels) for Docker
if: ${{ env.BUILD_CHANGED == 'true' }}
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/teelur/budget-board/server
- name: Build the Docker image
if: ${{ env.BUILD_CHANGED == 'true' }}
id: build
uses: docker/build-push-action@v7
with:
context: ./server
push: false
platforms: ${{ matrix.platform }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}