diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..374c27a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,41 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + +permissions: + actions: read + contents: read + +jobs: + main: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: pnpm/action-setup@v2 + with: + version: 8 + + # Connect your workspace on nx.app and uncomment this to enable task distribution. + # The "--stop-agents-after" is optional, but allows idle agents to shut down once the "e2e-ci" targets have been requested + # - run: pnpm dlx nx-cloud start-ci-run --distribute-on="5 linux-medium-js" --stop-agents-after="e2e-ci" + + # Cache node_modules + - uses: actions/setup-node@v3 + with: + node-version: 20 + cache: 'pnpm' + + - run: pnpm install --frozen-lockfile + - uses: nrwl/nx-set-shas@v4 + + # Prepend any command with "nx-cloud record --" to record its logs to Nx Cloud + # - run: pnpm exec nx-cloud record -- echo Hello World + - run: pnpm exec nx affected -t lint test build + - run: pnpm exec nx affected --parallel 1 -t e2e-ci diff --git a/nx.json b/nx.json index 3e4c949..cfbb5ae 100644 --- a/nx.json +++ b/nx.json @@ -1,8 +1,6 @@ { "cli": { - "warnings": { - "versionMismatch": false - }, + "warnings": { "versionMismatch": false }, "packageManager": "pnpm", "analytics": false }, @@ -11,13 +9,9 @@ "unitTestRunner": "jest", "e2eTestRunner": "cypress" }, - "@nx/angular:library": { - "unitTestRunner": "jest" - }, + "@nx/angular:library": { "unitTestRunner": "jest" }, "@nx/angular": { - "convert-tslint-to-eslint": { - "removeTSLintIfNoMoreTSLintTargets": true - } + "convert-tslint-to-eslint": { "removeTSLintIfNoMoreTSLintTargets": true } }, "@nx/react": { "application": { @@ -26,9 +20,7 @@ "bundler": "webpack", "babel": true }, - "component": { - "style": "css" - }, + "component": { "style": "css" }, "library": { "style": "css", "linter": "eslint", @@ -51,15 +43,8 @@ "@nx/jest:jest": { "inputs": ["default", "^production", "{workspaceRoot}/jest.preset.js"], "cache": true, - "options": { - "passWithNoTests": true - }, - "configurations": { - "ci": { - "ci": true, - "codeCoverage": true - } - } + "options": { "passWithNoTests": true }, + "configurations": { "ci": { "ci": true, "codeCoverage": true } } }, "@nx/eslint:lint": { "inputs": ["default", "{workspaceRoot}/.eslintrc.json"], @@ -68,7 +53,10 @@ }, "namedInputs": { "default": ["{projectRoot}/**/*", "sharedGlobals"], - "sharedGlobals": ["{workspaceRoot}/babel.config.json"], + "sharedGlobals": [ + "{workspaceRoot}/babel.config.json", + "{workspaceRoot}/.github/workflows/ci.yml" + ], "production": [ "default", "!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)", @@ -80,5 +68,6 @@ }, "parallel": 1, "useInferencePlugins": false, - "defaultBase": "origin/main" + "defaultBase": "origin/main", + "nxCloudAccessToken": "ZGYxMGFmMzAtMmJiZC00YzkxLWI2NjItYjE5YzdhZTkyMzMwfHJlYWQtd3JpdGU=" }