-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
45 additions
and
16 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,68 @@ | ||
name: CI | ||
|
||
on: | ||
push: | ||
pull_request: | ||
branches: | ||
- main | ||
- dev | ||
pull_request: | ||
|
||
permissions: | ||
actions: read | ||
contents: read | ||
|
||
jobs: | ||
main: | ||
lint-and-build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-node@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
# This enables task distribution via Nx Cloud | ||
# Run this command as early as possible, before dependencies are installed | ||
# Learn more at https://nx.dev/ci/reference/nx-cloud-cli#npx-nxcloud-startcirun | ||
- run: npx nx-cloud start-ci-run --distribute-on="3 linux-medium-js" --stop-agents-after="e2e-ci" | ||
node-version: '20' | ||
cache: 'npm' | ||
- run: npm ci --legacy-peer-deps | ||
- run: npx nx run-many --target=lint --all | ||
- run: npx nx run-many --target=build --all | ||
|
||
# Cache node_modules | ||
test: | ||
runs-on: ubuntu-latest | ||
needs: lint-and-build | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-node@v4 | ||
with: | ||
node-version: 20 | ||
node-version: '20' | ||
cache: 'npm' | ||
- run: npm ci --legacy-peer-deps | ||
- run: npx nx run-many --target=test --all | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: test-coverage | ||
path: 'coverage/apps/**' | ||
|
||
e2e: | ||
runs-on: ubuntu-latest | ||
needs: lint-and-build | ||
services: | ||
mongodb: | ||
image: mongo:4.4 | ||
ports: | ||
- 27017:27017 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-node@v4 | ||
with: | ||
node-version: '20' | ||
cache: 'npm' | ||
- run: npm ci --legacy-peer-deps | ||
- uses: nrwl/nx-set-shas@v4 | ||
- name: Install Xvfb | ||
run: sudo apt-get update && sudo apt-get install -y xvfb | ||
- name: Run E2E Tests | ||
run: | | ||
xvfb-run --auto-servernum npx nx run server:serve & | ||
sleep 10 # Give the server some time to start | ||
xvfb-run --auto-servernum npx nx run-many --target=e2e --all | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: e2e-results | ||
path: cypress/videos/** | ||
|
||
# Prepend any command with "nx-cloud record --" to record its logs to Nx Cloud | ||
# - run: npx nx-cloud record -- echo Hello World | ||
# Nx Affected runs only tasks affected by the changes in this PR/commit. Learn more: https://nx.dev/ci/features/affected | ||
- run: npx nx affected -t lint test build e2e-ci |