Commit 2a516855 authored by Mark Tyneway's avatar Mark Tyneway Committed by GitHub

Merge pull request #4778 from ethereum-optimism/willc/nx

feat(ci): add nx to monorepo for incremental cachable builds
parents 590d2b79 8b5928e8
#!/bin/sh #!/bin/sh
. "$(dirname "$0")/_/husky.sh" . "$(dirname "$0")/_/husky.sh"
yarn lerna run --concurrency 1 --stream pre-commit --since HEAD --exclude-dependents yarn nx affected --target=pre-commit
{
"defaultBase": "develop",
"affected": {
"defaultBase": "develop"
},
"implicitDependencies": {
"nx.json": "*"
},
"tasksRunnerOptions": {
"default": {
"runner": "@nrwl/nx-cloud",
"options": {
"cacheableOperations": [
"lint",
"build",
"test",
"build:contracts",
"autogen:artifacts"
]
}
}
},
"namedInputs": {
"configsWorkspace": [
"{workspaceRoot}/package.json",
"{workspaceRoot}/tsconfig.json"
],
"configsProject": [
"{projectRoot}/foundry.toml",
"{projectRoot}/tsconfig.json",
"{projectRoot}/hardhat.config.ts",
"{projectRoot}/package.json"
],
"default": ["{projectRoot}/**/*", "configsWorkspace"],
"srcGenerated": [
"{projectRoot}/src/contract-artifacts.ts",
"{projectRoot}/src/contract-deployed-artifacts.ts"
],
"productionSrc": [
"{projectRoot}/src/**/*",
"!{projectRoot}/src/contract-artifacts.ts",
"!{projectRoot}/src/contract-deployed-artifacts.ts",
"!{projectRoot}/src/**/*.spec.ts"
],
"productionContracts": ["{projectRoot}/contracts/**/*"],
"production": ["productionSrc", "productionContracts"],
"testing": ["configsWorkspace", "default"]
},
"targetDefaults": {
"lint": {
"inputs": ["{workspaceRoot}/.markdownlint.json", "default"]
},
"test": {
"inputs": ["default", "testing", "^production"],
"dependsOn": ["^build"]
},
"build:contracts": {
"inputs": [
"configsProject",
"productionContracts",
"^productionContracts"
],
"dependsOn": ["^build"],
"outputs": ["{projectRoot}/artifacts", "{projectRoot}/forge-artifacts"]
},
"autogen:artifacts": {
"inputs": [
"configsWorkspace",
"configsProject",
"productionContracts",
"^productionContracts"
],
"dependsOn": ["^build", "build:contracts"],
"outputs": ["srcGenerated"]
},
"build": {
"inputs": [
"configsWorkspace",
"configsProject",
"production",
"^production"
],
"dependsOn": ["^build", "autogen:artifacts", "build:contracts"],
"outputs": ["{projectRoot}/dist"]
}
}
}
...@@ -24,14 +24,14 @@ ...@@ -24,14 +24,14 @@
}, },
"private": true, "private": true,
"scripts": { "scripts": {
"clean": "yarn lerna run clean --parallel", "clean": "npx nx run-many --target=clean",
"build": "yarn lerna run build", "build": "npx nx run-many --target=build",
"test": "yarn lerna run test --parallel", "test": "npx nx run-many --target=test",
"test:coverage": "yarn lerna run test:coverage --parallel", "lint": "npx nx run-many --target=lint",
"lint": "yarn lerna run lint", "test:coverage": "npx nx run-many --target=test:coverage",
"lint:ts:check": "yarn lerna run lint:ts:check", "lint:ts:check": "npx nx run-many --target=lint:ts:check",
"lint:check": "yarn lerna run lint:check", "lint:check": "npx nx run-many --target=lint:check",
"lint:fix": "yarn lerna run lint:fix --parallel", "lint:fix": "npx nx run-many --target=lint:fix",
"lint:specs:fix": "yarn run markdownlint-cli2-fix \"./specs/**/*.md\"", "lint:specs:fix": "yarn run markdownlint-cli2-fix \"./specs/**/*.md\"",
"lint:specs:check": "yarn run markdownlint-cli2 \"./specs/**/*.md\"", "lint:specs:check": "yarn run markdownlint-cli2 \"./specs/**/*.md\"",
"lint:specs:toc": "yarn run doctoc '--title=**Table of Contents**' ./specs", "lint:specs:toc": "yarn run doctoc '--title=**Table of Contents**' ./specs",
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
}, },
"devDependencies": { "devDependencies": {
"@babel/eslint-parser": "^7.18.2", "@babel/eslint-parser": "^7.18.2",
"@nrwl/nx-cloud": "latest",
"@types/chai": "^4.2.18", "@types/chai": "^4.2.18",
"@types/chai-as-promised": "^7.1.4", "@types/chai-as-promised": "^7.1.4",
"@types/mocha": "^8.2.2", "@types/mocha": "^8.2.2",
...@@ -65,12 +66,12 @@ ...@@ -65,12 +66,12 @@
"eslint-plugin-react": "^7.24.0", "eslint-plugin-react": "^7.24.0",
"eslint-plugin-unicorn": "^42.0.0", "eslint-plugin-unicorn": "^42.0.0",
"husky": "^6.0.0", "husky": "^6.0.0",
"lerna": "^4.0.0",
"lint-staged": "11.0.0", "lint-staged": "11.0.0",
"markdownlint": "^0.24.0", "markdownlint": "^0.24.0",
"markdownlint-cli2": "0.4.0", "markdownlint-cli2": "0.4.0",
"mkdirp": "^1.0.4", "mkdirp": "^1.0.4",
"mocha": "^8.4.0", "mocha": "^8.4.0",
"nx": "15.6.0",
"nyc": "^15.1.0", "nyc": "^15.1.0",
"patch-package": "^6.4.7", "patch-package": "^6.4.7",
"prettier": "^2.8.0", "prettier": "^2.8.0",
......
...@@ -15,13 +15,15 @@ ...@@ -15,13 +15,15 @@
], ],
"scripts": { "scripts": {
"bindings": "cd ../../op-bindings && make", "bindings": "cd ../../op-bindings && make",
"build:forge": "forge build",
"build:with-metadata": "FOUNDRY_PROFILE=echidna yarn build:forge", "build:with-metadata": "FOUNDRY_PROFILE=echidna yarn build:forge",
"build": "npx nx build:ts && npx nx typechain",
"prebuild:contracts": "yarn ts-node scripts/verify-foundry-install.ts",
"build:contracts": "yarn build:hardhat",
"build:forge": "forge build",
"build:hardhat": "hardhat compile",
"build:ts": "tsc -p tsconfig.build.json",
"build:differential": "go build -o ./scripts/differential-testing/differential-testing ./scripts/differential-testing", "build:differential": "go build -o ./scripts/differential-testing/differential-testing ./scripts/differential-testing",
"build:fuzz": "(cd test-case-generator && go build ./cmd/fuzz.go)", "build:fuzz": "(cd test-case-generator && go build ./cmd/fuzz.go)",
"prebuild": "yarn ts-node scripts/verify-foundry-install.ts",
"build": "hardhat compile && yarn autogen:artifacts && yarn build:ts && yarn typechain",
"build:ts": "tsc -p tsconfig.build.json",
"autogen:artifacts": "ts-node scripts/generate-artifacts.ts", "autogen:artifacts": "ts-node scripts/generate-artifacts.ts",
"autogen:invariant-docs": "ts-node scripts/invariant-doc-gen.ts", "autogen:invariant-docs": "ts-node scripts/invariant-doc-gen.ts",
"deploy": "hardhat deploy", "deploy": "hardhat deploy",
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment