diff --git a/.github/actions/yarn-install/action.yml b/.github/actions/yarn-install/action.yml index 059f7650f2..5ccac8c7cb 100644 --- a/.github/actions/yarn-install/action.yml +++ b/.github/actions/yarn-install/action.yml @@ -4,16 +4,32 @@ inputs: type: string required: false default: '20.x' + recreate-yarn-lock: + type: boolean + required: false + default: false runs: using: "composite" steps: - uses: actions/setup-node@v4 + name: Setup Node With Yarn Cache + if: ${{ inputs.recreate-yarn-lock != 'true' }} with: node-version: ${{ inputs.node-version }} + check-latest: true cache: yarn cache-dependency-path: yarn.lock + - uses: actions/setup-node@v4 + name: Setup Node With No Yarn Cache + if: ${{ inputs.recreate-yarn-lock == 'true' }} + with: + node-version: ${{ inputs.node-version }} check-latest: true + - name: Remove yarn.lock + if: ${{ inputs.recreate-yarn-lock == 'true' }} + run: rm yarn.lock + shell: bash - name: Install Dependencies - run: yarn install --frozen-lockfile --non-interactive --ignore-scripts + run: yarn install ${{ inputs.recreate-yarn-lock != 'true' && '--frozen-lockfile' || '' }} --non-interactive --ignore-scripts shell: bash diff --git a/.github/workflows/build-test-and-deploy.yml b/.github/workflows/build-test-and-deploy.yml index a09868055f..85250bbdb3 100644 --- a/.github/workflows/build-test-and-deploy.yml +++ b/.github/workflows/build-test-and-deploy.yml @@ -47,7 +47,7 @@ jobs: fail-fast: false matrix: runs-on: ['ubuntu-latest'] - node-version: ['18.0', '18.x', '20.x'] + node-version: ['18.18', '18.x', '20.x'] uses: ./.github/workflows/test.yml with: node-version: ${{ matrix.node-version }} diff --git a/.github/workflows/nightly-latest-packages-validation.yml b/.github/workflows/nightly-latest-packages-validation.yml new file mode 100644 index 0000000000..0395b3b3c9 --- /dev/null +++ b/.github/workflows/nightly-latest-packages-validation.yml @@ -0,0 +1,36 @@ +# In order to be updated when nightlies fail, please subscribe for updates on PR: +# ---> https://github.com/facebook/metro/pull/1314 <--- +# where comments will be published on fail. + +# This is a bit of a workaround tackling the lack of an organic way +# to notify certain people when a Github workflow fails: +# https://github.com/orgs/community/discussions/18039 + +name: facebook/metro/nightly-latest-packages-validation +on: + schedule: + # Everyday at at 5:00 UTC (22:00 USA West Coast, 06:00 London) + - cron: '0 5 * * *' + push: + +jobs: + test: + uses: ./.github/workflows/test.yml + with: + recreate-yarn-lock: true + + comment-on-pr-for-failures: + runs-on: ubuntu-latest + needs: [test] + if: ${{ always() && needs.test.result == 'failure' }} + steps: + - uses: actions/github-script@v7 + with: + script: | + github.rest.issues.createComment({ + // see https://github.com/facebook/metro/pull/1314 + issue_number: 1314, + owner: context.repo.owner, + repo: context.repo.repo, + body: 'A nightly test failed in `${{ github.workflow }}` in [run ${{ github.run_id }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})!', + }); diff --git a/.github/workflows/nightly-node-compatibility-validation.yml b/.github/workflows/nightly-nodejs-validation.yml similarity index 82% rename from .github/workflows/nightly-node-compatibility-validation.yml rename to .github/workflows/nightly-nodejs-validation.yml index ce2ed07e4f..09ab33b557 100644 --- a/.github/workflows/nightly-node-compatibility-validation.yml +++ b/.github/workflows/nightly-nodejs-validation.yml @@ -6,12 +6,11 @@ # to notify certain people when a Github workflow fails: # https://github.com/orgs/community/discussions/18039 -name: facebook/metro/nightly-node-compatibility-validation +name: facebook/metro/nightly-nodejs-validation on: schedule: # Everyday at at 5:00 UTC (22:00 USA West Coast, 06:00 London) - cron: '0 5 * * *' - push: jobs: test: @@ -21,7 +20,7 @@ jobs: matrix: runs-on: ['ubuntu-latest'] node-version: [ # https://github.com/nodejs/release#release-schedule - '18.0', # minimum supported + '18.18', # minimum supported 'lts/-1', # pre-latest lts 'lts/*', # latest lts 'current' # newest @@ -44,5 +43,5 @@ jobs: issue_number: 1314, owner: context.repo.owner, repo: context.repo.repo, - body: 'A nightly test failed in `${{ github.workflow }}` in [run ${{ github.run_id }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})!', + body: 'The nightly workflow `${{ github.workflow }}` failed in [run ${{ github.run_id }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})!', }); diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 12e6433495..072a78d29e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,11 +5,15 @@ on: node-version: type: string required: false - default: 'ubuntu-latest' + default: '20.x' runs-on: type: string required: false - default: '20.x' + default: 'ubuntu-latest' + recreate-yarn-lock: + type: boolean + required: false + default: false jobs: test: @@ -20,5 +24,6 @@ jobs: - uses: ./.github/actions/yarn-install with: node-version: ${{ inputs.node-version }} + recreate-yarn-lock: ${{ inputs.recreate-yarn-lock }} - name: Run Jest Tests run: yarn jest --ci --maxWorkers 4 --reporters=default --reporters=jest-junit --rootdir='./' diff --git a/package.json b/package.json index e55f6b68c7..43cfe0973c 100644 --- a/package.json +++ b/package.json @@ -93,6 +93,6 @@ "license": "MIT", "dependencies": {}, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/buck-worker-tool/package.json b/packages/buck-worker-tool/package.json index 0b5c683f59..86e00b8e43 100644 --- a/packages/buck-worker-tool/package.json +++ b/packages/buck-worker-tool/package.json @@ -19,6 +19,6 @@ "cleanup-release": "test ! -e build && mv src build && mv src.real src" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-babel-register/package.json b/packages/metro-babel-register/package.json index f0e4c99faa..d8726c7c13 100644 --- a/packages/metro-babel-register/package.json +++ b/packages/metro-babel-register/package.json @@ -26,6 +26,6 @@ }, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-babel-transformer/package.json b/packages/metro-babel-transformer/package.json index 23463882a9..3d2eb0da44 100644 --- a/packages/metro-babel-transformer/package.json +++ b/packages/metro-babel-transformer/package.json @@ -23,6 +23,6 @@ "nullthrows": "^1.1.1" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-cache-key/package.json b/packages/metro-cache-key/package.json index 9fd38d5184..4d30d114c7 100644 --- a/packages/metro-cache-key/package.json +++ b/packages/metro-cache-key/package.json @@ -16,7 +16,7 @@ "metro-memory-fs": "0.80.10" }, "engines": { - "node": ">=18" + "node": ">=18.18" }, "dependencies": { "flow-enums-runtime": "^0.0.6" diff --git a/packages/metro-cache/package.json b/packages/metro-cache/package.json index 718bb92b37..9b1d47658a 100644 --- a/packages/metro-cache/package.json +++ b/packages/metro-cache/package.json @@ -21,6 +21,6 @@ }, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index 96f14684a6..e4a8561217 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -29,6 +29,6 @@ "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-core/package.json b/packages/metro-core/package.json index d7c5753a53..523e0852ab 100644 --- a/packages/metro-core/package.json +++ b/packages/metro-core/package.json @@ -18,6 +18,6 @@ }, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-file-map/package.json b/packages/metro-file-map/package.json index e4a76bc7ff..2c77032297 100644 --- a/packages/metro-file-map/package.json +++ b/packages/metro-file-map/package.json @@ -32,6 +32,6 @@ "fsevents": "^2.3.2" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-memory-fs/package.json b/packages/metro-memory-fs/package.json index 5a6f9eb216..8aaaef67c1 100644 --- a/packages/metro-memory-fs/package.json +++ b/packages/metro-memory-fs/package.json @@ -13,7 +13,7 @@ }, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=18.18" }, "dependencies": { "flow-enums-runtime": "^0.0.6" diff --git a/packages/metro-minify-terser/package.json b/packages/metro-minify-terser/package.json index eb6b3b8745..2ab43f0efa 100644 --- a/packages/metro-minify-terser/package.json +++ b/packages/metro-minify-terser/package.json @@ -17,6 +17,6 @@ "terser": "^5.15.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-resolver/package.json b/packages/metro-resolver/package.json index 1291a63694..15504e79fc 100644 --- a/packages/metro-resolver/package.json +++ b/packages/metro-resolver/package.json @@ -13,7 +13,7 @@ }, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=18.18" }, "devDependencies": { "metro": "0.80.10" diff --git a/packages/metro-runtime/package.json b/packages/metro-runtime/package.json index f4f1105b13..c2b24c7c68 100644 --- a/packages/metro-runtime/package.json +++ b/packages/metro-runtime/package.json @@ -23,6 +23,6 @@ "react-test-renderer": "19.0.0-rc-fb9a90fa48-20240614" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-source-map/package.json b/packages/metro-source-map/package.json index 619fa4723d..838379bfe9 100644 --- a/packages/metro-source-map/package.json +++ b/packages/metro-source-map/package.json @@ -29,6 +29,6 @@ "terser": "^5.15.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-symbolicate/package.json b/packages/metro-symbolicate/package.json index 3fe1ddae5a..21aa936d50 100644 --- a/packages/metro-symbolicate/package.json +++ b/packages/metro-symbolicate/package.json @@ -26,6 +26,6 @@ "vlq": "^1.0.0" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-transform-plugins/package.json b/packages/metro-transform-plugins/package.json index 643d3ff821..9710b0733f 100644 --- a/packages/metro-transform-plugins/package.json +++ b/packages/metro-transform-plugins/package.json @@ -30,6 +30,6 @@ "metro": "0.80.10" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro-transform-worker/package.json b/packages/metro-transform-worker/package.json index bf6834a9cf..a71ce4ff8b 100644 --- a/packages/metro-transform-worker/package.json +++ b/packages/metro-transform-worker/package.json @@ -32,6 +32,6 @@ "metro-memory-fs": "0.80.10" }, "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/metro/package.json b/packages/metro/package.json index dce8cf18c7..afffb42be0 100644 --- a/packages/metro/package.json +++ b/packages/metro/package.json @@ -74,6 +74,6 @@ }, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=18.18" } } diff --git a/packages/ob1/package.json b/packages/ob1/package.json index 6ba0f9e494..9450e19510 100644 --- a/packages/ob1/package.json +++ b/packages/ob1/package.json @@ -19,6 +19,6 @@ "flow-enums-runtime": "^0.0.6" }, "engines": { - "node": ">=18" + "node": ">=18.18" } }