mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 15:57:32 +00:00

# Which Problems Are Solved Login integration tests are not executed in the pipeline # How the Problems Are Solved The login integration tests are fixed and added as a pipeline workflow. It tests against the built login docker image. On pipeline failures, developers are guided on how to fix them using a dev container configured for this purpose. # Additional Changes - email domains are replaced by example.com. In case the tests were accidentally run against a cloud instance, it wouldn't cause bounces. - pnpm is upgraded, because the --filter argument doesn't work for the install command on the old version. - The login Dockerfile is optimized for docker image builds # Additional Changes From Review for https://github.com/zitadel/zitadel/pull/10305 These changes were requested from @peintnermax - The base dev container starts without any services besides the database and the dev container itself - CONTRIBUTING.md is restructured - To reproduce pipeline checks, only the devcontainer CLI and Docker are needed. This is described in the CONTRIBUTING.md - The convenience npm script "generate" is added # Additional Context - Follow-up for PR https://github.com/zitadel/zitadel/pull/10305 - Base for https://github.com/zitadel/zitadel/issues/10277
94 lines
2.7 KiB
YAML
94 lines
2.7 KiB
YAML
name: Lint
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
node_version:
|
|
required: true
|
|
type: string
|
|
buf_version:
|
|
required: true
|
|
type: string
|
|
go_lint_version:
|
|
required: true
|
|
type: string
|
|
core_cache_key:
|
|
required: true
|
|
type: string
|
|
core_cache_path:
|
|
required: true
|
|
type: string
|
|
|
|
jobs:
|
|
lint-skip:
|
|
name: lint skip
|
|
runs-on: ubuntu-latest
|
|
if: ${{ github.event_name != 'pull_request' }}
|
|
steps:
|
|
- name: Lint skip
|
|
run: |
|
|
echo "Linting outside of pull requests is skipped"
|
|
|
|
api:
|
|
name: api
|
|
runs-on: ubuntu-latest
|
|
continue-on-error: true
|
|
if: ${{ github.event_name == 'pull_request' }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: bufbuild/buf-setup-action@v1
|
|
with:
|
|
version: ${{ inputs.buf_version }}
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: lint
|
|
uses: bufbuild/buf-lint-action@v1
|
|
- uses: bufbuild/buf-breaking-action@v1
|
|
with:
|
|
against: "https://github.com/${{ github.repository }}.git#branch=${{ github.base_ref }}"
|
|
|
|
turbo-lint-unit:
|
|
if: ${{ github.event_name == 'pull_request' }}
|
|
name: turbo-lint-unit
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Install Dev Container CLI
|
|
run: npm install -g @devcontainers/cli@0.80.0
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
- name: Lint and Unit Test All JavaScript Code
|
|
run: npm run devcontainer:lint-unit
|
|
- name: Fix Failures
|
|
if: failure()
|
|
run: |
|
|
echo "Reproduce this check locally:"
|
|
echo "npm run devcontainer:lint-unit"
|
|
echo "If you have pnpm installed, most linting errors can be fixed automatically:"
|
|
echo "pnpm turbo lint:fix"
|
|
echo "In other cases, you can open the dev container called \"Turbo Lint and Unit Tests\"."
|
|
echo "You will have the same environment as the pipeline check as well as some guidance on how to fix the errors."
|
|
|
|
core:
|
|
name: core
|
|
runs-on: ubuntu-latest
|
|
if: ${{ github.event_name == 'pull_request' }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version-file: "go.mod"
|
|
- uses: actions/cache/restore@v4
|
|
timeout-minutes: 1
|
|
name: restore core
|
|
with:
|
|
path: ${{ inputs.core_cache_path }}
|
|
key: ${{ inputs.core_cache_key }}
|
|
fail-on-cache-miss: true
|
|
- uses: golangci/golangci-lint-action@v8
|
|
with:
|
|
version: ${{ inputs.go_lint_version }}
|
|
github-token: ${{ github.token }}
|
|
only-new-issues: true
|