From ee4d80643433035a257860309904b79276e77aba Mon Sep 17 00:00:00 2001 From: Isaac Mann Date: Thu, 18 Jul 2024 14:02:46 -0400 Subject: [PATCH 1/2] feat(nx-cloud): setup nx cloud workspace This commit set up Nx Cloud for your Nx workspace enabling distributed caching and GitHub integration for fast CI and improved Developer Experience. You can access your Nx Cloud workspace by going to https://cloud.nx.app/orgs/65bd419d18893a77e550159f/workspaces/65bd01e7f5987314f49e4d08 **Note:** This commit attempts to maintain formatting of the nx.json, however you may need to correct formatting by running an nx format command and committing the changes. --- nx.json | 30 ++++++++---------------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/nx.json b/nx.json index 3e4c949..d7c3194 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"], @@ -80,5 +65,6 @@ }, "parallel": 1, "useInferencePlugins": false, - "defaultBase": "origin/main" + "defaultBase": "origin/main", + "nxCloudAccessToken": "ZGYxMGFmMzAtMmJiZC00YzkxLWI2NjItYjE5YzdhZTkyMzMwfHJlYWQtd3JpdGU=" } From a54ab1f2797dc9a530aa60c447818cd86f45af0d Mon Sep 17 00:00:00 2001 From: Isaac Mann Date: Thu, 18 Jul 2024 14:40:48 -0400 Subject: [PATCH 2/2] basic ci workflow --- .github/workflows/ci.yml | 41 ++++++++++++++++++++++++++++++++++++++++ nx.json | 5 ++++- 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ci.yml 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 d7c3194..cfbb5ae 100644 --- a/nx.json +++ b/nx.json @@ -53,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)",