Skip to content

chore(master): release 0.35.0 #3476

chore(master): release 0.35.0

chore(master): release 0.35.0 #3476

Workflow file for this run

name: Testing
on:
pull_request:
paths-ignore:
- "helm/**"
- ".release-please-manifest.json"
merge_group:
push:
branches:
- master
- renovate/*
paths-ignore:
- "helm/**"
- ".release-please-manifest.json"
permissions:
packages: write
id-token: write
contents: read
concurrency:
group: tests-${{ format('{0}-{1}', github.head_ref || github.run_number, github.job) }}
cancel-in-progress: true
jobs:
changes:
name: Check Changes
runs-on: ubuntu-24.04
outputs:
docs: ${{ steps.filter.outputs.docs }}
php: ${{ steps.filter.outputs.php }}
js: ${{ steps.filter.outputs.js }}
client: ${{ steps.filter.outputs.client }}
api: ${{ steps.filter.outputs.api }}
md: ${{ steps.filter.outputs.md }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
- uses: dorny/paths-filter@master
id: filter
with:
predicate-quantifier: "some"
filters: |
docs:
- 'docs/**'
php:
- 'backend/**'
- '**/*.php'
client:
- 'client/**'
- '!**/*.md'
api:
- 'backend/**'
- '!**/*.md'
js:
- 'client/**'
- '**/*.js'
md:
- '**/*.md'
client-unit-test:
name: "Client / Unit Test"
runs-on: ubuntu-24.04
needs: [changes]
if: ${{ needs.changes.outputs.client == 'true' }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- uses: mesh-research/github-actions/build-image@v2
id: build-image
name: Run Unit Tests
with:
target: "web-test-ci"
- name: Upload coverage to Codecov
if: ${{ !cancelled() }}
uses: codecov/codecov-action@v4
with:
files: ./coverage-web/cobertura-coverage.xml
flags: client
fail_ci_if_error: false
use_oidc: true
- name: Upload test results to Codecov
if: ${{ !cancelled() }}
uses: codecov/test-results-action@v1
with:
files: ./coverage-web/junit.xml
flags: client
fail_ci_if_error: false
use_oidc: true
client-fallow-audit:
name: "Client / Fallow Audit"
runs-on: ubuntu-24.04
needs: [changes]
if: ${{ needs.changes.outputs.client == 'true' && github.event_name == 'pull_request' }}
permissions:
contents: read
pull-requests: write
security-events: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 22
cache: yarn
cache-dependency-path: client/yarn.lock
# Install deps and generate graphql artifacts so fallow resolves
# imports of src/graphql/generated and node_modules packages
- name: Install dependencies
run: yarn install --frozen-lockfile
working-directory: ./client
- name: Generate GraphQL artifacts
run: yarn graphql:codegen-local
working-directory: ./client
# Generates .quasar/tsconfig.json so fallow resolves the `app`/`src`
# path aliases instead of flagging them as unlisted dependencies
- name: Prepare Quasar
run: yarn quasar prepare
working-directory: ./client
- uses: fallow-rs/fallow@v2
with:
command: audit
root: ./client
# sarif upload disabled: audit emits multiple SARIF runs with the
# same category, which GitHub code scanning now rejects
sarif: false
comment: true
review-comments: true
fail-on-issues: true
build-images:
name: "Build"
runs-on: ubuntu-24.04
outputs:
version: ${{ steps.build-image.outputs.version }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: Login to Github Packages
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: mesh-research/github-actions/build-image@v2
id: build-image
name: Build Image
with:
token: ${{ secrets.GITHUB_TOKEN }}
push: true
backend-unit-test:
name: Backend / Unit Test
runs-on: ubuntu-24.04
needs: [changes]
services:
# The label 'mysql' becomes the hostname for the service container
mysql:
image: mysql:5.7 # Use an official MySQL Docker image
ports:
# Maps port 3306 in the container to a dynamic port on the host
- 3306:3306
env:
# Required environment variables for the MySQL container
MYSQL_ROOT_PASSWORD: pilcrow
MYSQL_DATABASE: pilcrow
options: >-
--health-cmd "mysqladmin ping -h 127.0.0.1 -uroot -ppilcrow"
--health-interval 10s
--health-timeout 5s
--health-retries 3
if: ${{ needs.changes.outputs.api == 'true' }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: Copy client schema for drift detection
run: cp client/src/graphql/schema.graphql backend/tests/stubs/schema.graphql
- uses: mesh-research/github-actions/build-image@v2
with:
target: "fpm-test-ci"
- name: Upload coverage to Codecov
if: ${{ !cancelled() }}
uses: codecov/codecov-action@v4
with:
files: ./coverage-fpm/cobertura.xml
flags: backend
fail_ci_if_error: false
use_oidc: true
- name: Upload test results to Codecov
if: ${{ !cancelled() }}
uses: codecov/test-results-action@v1
with:
files: ./coverage-fpm/junit.xml
flags: backend
fail_ci_if_error: false
use_oidc: true
# e2e:
# name: "E2E Test"
# needs: [build-images]
# uses: ./.github/workflows/do-test-e2e.yml
# secrets: inherit
# with:
# version: ${{ needs.build-images.outputs.version }}
lint-php:
name: PHP Lint
runs-on: ubuntu-24.04
needs: [changes]
if: ${{ needs.changes.outputs.php == 'true' }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- uses: mesh-research/github-actions/build-image@v2
with:
target: "fpm-lint-ci"
lint-js:
name: JS Lint
runs-on: ubuntu-24.04
needs: [changes]
if: ${{ needs.changes.outputs.js == 'true' }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- uses: mesh-research/github-actions/build-image@v2
with:
target: "web-lint-ci"
docs-build:
name: Docs Build
runs-on: ubuntu-24.04
needs: [changes]
if: ${{ needs.changes.outputs.docs == 'true' }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: 22
- run: |
cd docs && \
yarn install && \
yarn docs:build
lint-md:
name: MD Lint
runs-on: ubuntu-24.04
needs: [changes]
if: ${{ needs.changes.outputs.md == 'true' }}
steps:
- name: Checkout Code
uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 20
cache: yarn
cache-dependency-path: yarn.lock
- name: Install dependencies
run: yarn install
- name: Check MD
run: yarn lint:md