mirror of
https://github.com/ajnart/homarr.git
synced 2026-01-30 03:09:19 +01:00
* ci: add e2e workflow * fix: skip showing error * fix: when e2e skipped, e2e still executed * fix: job env not accessible in if * fix: env not accessible at all in job if statement * fix: wrong env used for step ifs * ci: add reusable e2e-execution workflow * fix: e2e trigger fails not supported reusable workflow within steps * fix: composite e2e-execution action not found * fix: reference to composite action not working without checkout * fix: composite action has to be named action.yml * fix: id for docker should not have spaces * fix: shell property missing * fix: typo one dash to much * ci: add e2e tests * chore: change node-version to 22 * chore: move e2e tests to code-quality workflow as duration of e2e step is about 4 minutes * fix: deepsource issues
109 lines
2.4 KiB
YAML
109 lines
2.4 KiB
YAML
name: "[Quality] Code Analysis"
|
|
|
|
on:
|
|
pull_request:
|
|
branches: ["*"]
|
|
push:
|
|
branches: ["main"]
|
|
merge_group:
|
|
|
|
concurrency:
|
|
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
|
|
|
|
# You can leverage Vercel Remote Caching with Turbo to speed up your builds
|
|
# @link https://turborepo.org/docs/core-concepts/remote-caching#remote-caching-on-vercel-builds
|
|
env:
|
|
FORCE_COLOR: 3
|
|
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
|
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
|
|
|
|
jobs:
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup
|
|
uses: ./tooling/github/setup
|
|
|
|
- name: Copy env
|
|
shell: bash
|
|
run: cp .env.example .env
|
|
|
|
- name: Lint
|
|
run: pnpm lint && pnpm lint:ws
|
|
|
|
format:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup
|
|
uses: ./tooling/github/setup
|
|
|
|
- name: Format
|
|
run: pnpm format
|
|
|
|
typecheck:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup
|
|
uses: ./tooling/github/setup
|
|
|
|
- name: Typecheck
|
|
run: turbo typecheck
|
|
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup
|
|
uses: ./tooling/github/setup
|
|
|
|
- name: Test
|
|
run: pnpm test
|
|
|
|
- name: "Report Coverage"
|
|
# Set if: always() to also generate the report if tests are failing
|
|
# Only works if you set `reportOnFailure: true` in your vite config as specified above
|
|
if: always()
|
|
uses: davelosert/vitest-coverage-report-action@v2
|
|
|
|
e2e:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Setup
|
|
uses: ./tooling/github/setup
|
|
- name: Build docker image
|
|
id: build-docker-image
|
|
uses: docker/build-push-action@v6
|
|
with:
|
|
platforms: linux/amd64
|
|
context: .
|
|
push: false
|
|
tags: homarr-e2e
|
|
network: host
|
|
env:
|
|
SKIP_ENV_VALIDATION: true
|
|
- name: Run E2E Tests
|
|
shell: bash
|
|
run: pnpm test:e2e
|
|
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Setup
|
|
uses: ./tooling/github/setup
|
|
- name: Copy env
|
|
shell: bash
|
|
run: cp .env.example .env
|
|
- name: Build
|
|
run: pnpm build
|