chore(deps): update swc monorepo (#720) #2887
This file contains 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: CI | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
types: | |
- opened | |
- synchronize | |
jobs: | |
main: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Ensure Conventional Commits | |
uses: webiny/[email protected] | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: '.nvmrc' | |
cache: 'npm' | |
- run: npm ci | |
- uses: nrwl/nx-set-shas@v3 | |
- name: Check Formatting | |
run: | | |
if [[ $(npx nx format:check) ]]; then | |
npx prettier -w . | |
git diff --color | cat | |
exit 1 | |
fi | |
- name: Lint | |
run: npx nx affected --target=lint --parallel=3 | |
- name: Run all tests | |
if: github.event_name == 'push' | |
run: npx nx run-many --all --target=test --parallel --ci --coverage --coverageReporters=lcov | |
- name: Run affected tests | |
if: github.event_name == 'pull_request' | |
run: npx nx affected --target=test --parallel --ci --coverage --coverageReporters=lcov | |
- name: Merge Coverage files | |
run: '[ -d "./coverage/" ] && ./node_modules/.bin/lcov-result-merger ./coverage/**/lcov.info ./coverage/lcov.info || exit 0' | |
- name: Create Environments | |
run: | | |
envsubst < apps/spa/src/environments/environment.template > apps/spa/src/environments/environment.ts | |
envsubst < apps/api/src/app/environment.template > apps/api/src/app/environment.ts | |
env: | |
IS_PRODUCTION: true | |
ENVIRONMENT_NAME: 'ci' | |
RELEASE_VERSION: ${{ github.sha }} | |
- name: Build | |
run: | | |
npx nx run-many -t build --all --parallel=3 | |
docker build -t kordis-api:${{ github.sha }} -f ./apps/api/Dockerfile --build-arg NODE_VERSION=$(cat .nvmrc | tr -cd '[:digit:].') . & | |
docker build -t kordis-spa:${{ github.sha }} -f ./apps/spa/docker/Dockerfile . & | |
wait | |
- name: Install Chromium for E2Es | |
run: npx -y playwright install chromium | |
- name: Start and prepare MongoDB for E2Es | |
run: ./tools/db/kordis-db.sh init e2edb | |
- name: Start API and SPA containers | |
run: | | |
docker run -d --name kordis-api-container -p 3000:3333 -e MONGODB_URI=mongodb://172.17.0.1:27017/e2edb -e AUTH_PROVIDER=dev kordis-api:${{ github.sha }} | |
docker run -d --name kordis-spa-container -p 4200:8080 -e API_URL=http://localhost:3000 kordis-spa:${{ github.sha }} | |
- name: Run E2Es | |
id: e2e-tests | |
run: npx wait-on -t 90s http://localhost:3000/health-check && npx wait-on -t 30s http://localhost:4200 && npx nx e2e spa-e2e --skipInstall | |
env: | |
E2E_BASE_URL: http://localhost:4200/ | |
- uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: e2e-test-results | |
path: test-results/ | |
if-no-files-found: ignore | |
- name: Print Container Logs | |
if: ${{ failure() && steps.e2e-tests.conclusion == 'failure' }} | |
run: | | |
echo "::group::Kordis API Container Logs" | |
docker logs kordis-api-container | |
echo "::endgroup::" | |
echo "::group::Kordis SPA Container Logs" | |
docker logs kordis-spa-container | |
echo "::endgroup::" | |
- name: SonarCloud Scan | |
uses: sonarsource/sonarcloud-github-action@master | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} |