mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-18 13:52:51 +00:00
# Which Problems Are Solved In order for golangci-lint to be able to compare what changed against main, we have to check out main on branches. If the pipeline runs on main, the branch can't be checked out twice and the pipeline fails. # How the Problems Are Solved The step `Fetch main branch` in `lint_test_build` is only executed if the workflow doesn't run on main, because in this case, the branch is already checked out by the `Checkout Repository` step. # Additional Changes PRs can only be merged if `lint_test_buld` succeeds on an up-to-date branch. When a PR is merged, it triggers a push event which runs `lint_test_build` again on main with the same conditions. This is obsolete. Pushes to main don't trigger the `lint_test_build` workflow anymore. # Additional Context - Resolves https://github.com/zitadel/zitadel/actions/runs/18339015014/job/52229685065
100 lines
3.2 KiB
YAML
100 lines
3.2 KiB
YAML
name: Lint Test Build
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
node_version:
|
|
required: true
|
|
type: string
|
|
secrets:
|
|
CODECOV_TOKEN:
|
|
required: true
|
|
NX_CLOUD_ACCESS_TOKEN_READONLY:
|
|
required: true
|
|
|
|
jobs:
|
|
lint_test_build:
|
|
name: Lint, Test and Build
|
|
runs-on: depot-ubuntu-22.04-16
|
|
environment: ${{ github.ref_protected == 'true' && 'Protected' || null }}
|
|
steps:
|
|
- name: Checkout Repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
filter: tree:0
|
|
- name: Fetch main branch
|
|
if: ${{ github.ref != 'refs/heads/main' }}
|
|
run: git fetch origin main:main
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
- name: Set up pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
run_install: false
|
|
- name: Set up Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ inputs.node_version }}
|
|
cache: "pnpm"
|
|
- name: Set up Docker
|
|
uses: docker/setup-docker-action@v4
|
|
with:
|
|
version: v28.3.2
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
with:
|
|
version: v0.28.0
|
|
- name: Set up Docker Compose
|
|
uses: docker/setup-compose-action@v1
|
|
with:
|
|
version: v2.38.2
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
- name: Install Cypress binary
|
|
run: pnpm cypress install
|
|
working-directory: apps/login
|
|
- name: Set SHAs for nx affected commands
|
|
uses: nrwl/nx-set-shas@v4
|
|
- name: Lint, Test and Build
|
|
env:
|
|
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN || secrets.NX_CLOUD_ACCESS_TOKEN_READONLY }}
|
|
run: pnpm nx affected --nxBail --targets lint test build --exclude @zitadel/docs
|
|
- name: Suggest Pipeline Fix By Nx Cloud AI
|
|
if: failure() || cancelled()
|
|
env:
|
|
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN || secrets.NX_CLOUD_ACCESS_TOKEN_READONLY }}
|
|
run: pnpm nx fix-ci
|
|
- name: Publish API Unit Test Coverage
|
|
uses: codecov/[email protected]
|
|
with:
|
|
file: profile.api.test-unit.cov
|
|
name: api-test-unit
|
|
flags: api-test-unit
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
- name: Publish API Integration Test Coverage
|
|
uses: codecov/[email protected]
|
|
with:
|
|
file: profile.api.test-integration.cov
|
|
name: api-test-integration
|
|
flags: api-test-integration
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
- name: Upload API Integration Test Race Logs
|
|
if: failure() || cancelled()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: api-integration-test-race-logs
|
|
path: |
|
|
.artifacts/api-test-integration/race.log.*
|
|
- name: Upload Functional UI Test Artifacts
|
|
uses: actions/upload-artifact@v4
|
|
if: failure() || cancelled()
|
|
with:
|
|
name: functional-ui-tests
|
|
path: |
|
|
tests/functional-ui/cypress/screenshots
|
|
tests/functional-ui/cypress/videos
|
|
tests/functional-ui/cypress/results
|