chore(master): release 0.35.0 #3476
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |