Merge branch 'feature/updates_gitea_workflow' into master
Build, Test and Package Release / prepare (pull_request) Successful in 1m12s
Build, Test and Package Release / build (pull_request) Failing after 1m42s
Build, Test and Package Release / test (pull_request) Skipped
Build, Test and Package Release / deploy (pull_request) Skipped

This commit is contained in:
2026-07-24 07:53:37 +02:00
3 changed files with 141 additions and 76 deletions
+31
View File
@@ -0,0 +1,31 @@
name: Deploy
on:
workflow_call:
inputs:
artifact_name:
required: true
type: string
environment:
required: true
type: string
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Download build artifact
uses: actions/download-artifact@v4
with:
name: ${{ inputs.artifact_name }}
path: dist
# Placeholder deploy step: voor nu wordt dist/ opnieuw gepubliceerd
# als duidelijk benoemde, downloadbare artifact. Zodra de hosting-/
# upload-methode (FTP/SFTP/anders) vastligt, vervang deze stap door
# de daadwerkelijke upload en kan deze opmerking weg.
- name: Package release artifact
uses: actions/upload-artifact@v4
with:
name: release-dist
path: dist/
retention-days: 1
-76
View File
@@ -1,76 +0,0 @@
name: Build, Test and Package Release
# Pipeline (see aidlc-docs/features/react-frontend/operations/deployment/deployment-instructions.md):
# - Runs automatically on every pull request (merge request) as a build/test/lint gate.
# - Can also be triggered manually from Gitea Actions, picking the branch/ref to run against.
# - The "deploy" job currently only packages dist/ as a downloadable artifact
# (no automatic upload to a host yet) and only runs for manual (workflow_dispatch) runs.
# Typically run on a `release/*` branch once you've manually created it for a release.
# - Uploaded artifacts expire after 1 day (retention-days: 1).
# - Gitea Actions has no GitLab/Azure DevOps-style approval gate (a single job with a
# "manual" play button inside an already-running pipeline). The closest equivalent is
# workflow_dispatch: the deploy job only runs when someone presses "Run workflow" in
# the Gitea Actions UI, i.e. a one-click manual approval.
on:
workflow_dispatch: {}
pull_request:
types: [opened, synchronize, reopened]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Lint
run: pnpm run lint
- name: Unit tests
run: pnpm run test
- name: Build
run: pnpm run build
- name: Upload build artifact
uses: actions/upload-artifact@v3
with:
name: dist
path: dist/
retention-days: 1
deploy:
needs: build-and-test
if: github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
steps:
- name: Download build artifact
uses: actions/download-artifact@v3
with:
name: dist
path: dist
# Placeholder deploy step: for now this only re-publishes dist/ as a clearly
# named, ready-to-download artifact. Once the hosting/upload method (FTP/SFTP/
# other) is finalized, replace this step with the actual upload and this
# comment can be removed.
- name: Package release artifact
uses: actions/upload-artifact@v3
with:
name: release-dist
path: dist/
retention-days: 1
+110
View File
@@ -0,0 +1,110 @@
name: Build, Test and Package Release
on:
workflow_dispatch: {}
pull_request:
types: [opened, synchronize, reopened]
jobs:
prepare:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- uses: pnpm/action-setup@v4
with:
version: 9
- name: Get pnpm store directory
id: pnpm-store
run: echo "path=$(pnpm store path)" >> "$GITHUB_OUTPUT"
- name: Cache pnpm store
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-store.outputs.path }}
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
build:
needs: prepare
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- uses: pnpm/action-setup@v4
with:
version: 9
- name: Get pnpm store directory
id: pnpm-store
run: echo "path=$(pnpm store path)" >> "$GITHUB_OUTPUT"
- name: Restore pnpm store
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-store.outputs.path }}
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm run build
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/
retention-days: 1
test:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- uses: pnpm/action-setup@v4
with:
version: 9
- name: Get pnpm store directory
id: pnpm-store
run: echo "path=$(pnpm store path)" >> "$GITHUB_OUTPUT"
- name: Restore pnpm store
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-store.outputs.path }}
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Lint
run: pnpm run lint
- name: Unit tests
run: pnpm run test
deploy:
needs: [build, test]
if: github.event_name == 'workflow_dispatch'
uses: ./.gitea/workflows/deploy.yaml
with:
artifact_name: dist
environment: production