test: try #2231 with 21.x instead of 22.x #8122
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
name: CI | |
# run CI on pushes to master, and on all PRs (even the ones that target other | |
# branches) | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
# This file has necessary redundancies since of github actions aren't supporting: | |
# - the definition of macros, which could be called from each job. | |
# - reporting the status of steps in the PR (only jobs and workflows are reported). | |
# Steps between "begin" and "end" should be the same in every job. | |
jobs: | |
lint: | |
name: lint | |
# begin macro | |
runs-on: ${{ matrix.platform }} | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [18.x, 20.x] | |
platform: [ubuntu-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Echo node version | |
run: node --version | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT | |
- name: Cache npm modules | |
uses: actions/cache@v3 | |
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
- name: Install dependencies | |
run: yarn --frozen-lockfile | |
# end macro | |
- name: Run yarn build | |
run: yarn build | |
- name: Run yarn lint | |
run: yarn lint | |
# build the API docs to verify it works | |
- name: build API docs | |
run: yarn docs | |
# build the API docs in markdown for agoric/documentation repo to verify it works | |
- name: build API docs in markdown | |
run: yarn docs:markdown-for-agoric-documentation-repo | |
test: | |
name: test | |
# begin macro | |
runs-on: ${{ matrix.platform }} | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [18.x, 20.x, 21.x] | |
platform: [ubuntu-latest, windows-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Echo node version | |
run: node --version | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT | |
shell: bash | |
- name: Cache npm modules | |
uses: actions/cache@v3 | |
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
- name: Install dependencies | |
run: yarn --frozen-lockfile | |
# end macro | |
- name: Run yarn build | |
run: yarn build | |
- name: Run yarn test | |
run: yarn test | |
test-async-hooks: | |
name: test-async-hooks | |
runs-on: ${{ matrix.platform }} | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: | |
# '16.1' last version before some significant promise hooks changes | |
# '16.5' last version before unconditional promise fast-path | |
# '16.6' first version after unconditional promise fast-path | |
- '18' | |
# '20.6' not viable due to https://github.com/nodejs/node/issues/49497 | |
# '20.3' to '20.6' not viable due to https://github.com/nodejs/node/pull/49211 | |
# '20.7' first SES-viable version | |
# '20.9' first LTS of 20 | |
- '20' | |
platform: | |
- ubuntu-latest | |
# begin macro | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Echo node version | |
run: node --version | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT | |
- name: Cache npm modules | |
uses: actions/cache@v3 | |
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
# end macro | |
- name: Install dependencies | |
run: yarn --frozen-lockfile --ignore-engines | |
- name: Run yarn build | |
run: yarn build | |
- name: Run yarn test (@endo/init) | |
working-directory: packages/init | |
run: yarn test | |
cover: | |
name: cover | |
# begin macro | |
runs-on: ${{ matrix.platform }} | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [18.x, 20.x] | |
platform: [ubuntu-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Echo node version | |
run: node --version | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT | |
- name: Cache npm modules | |
uses: actions/cache@v3 | |
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
- name: Install dependencies | |
run: yarn --frozen-lockfile | |
# end macro | |
- name: Run yarn build | |
run: yarn build | |
- name: Run yarn cover | |
run: yarn cover | |
test262: | |
name: test262 | |
# begin macro | |
runs-on: ${{ matrix.platform }} | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [18.x, 20.x] | |
platform: [ubuntu-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Echo node version | |
run: node --version | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT | |
- name: Cache npm modules | |
uses: actions/cache@v3 | |
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
- name: Install dependencies | |
run: yarn --frozen-lockfile | |
# end macro | |
- name: Run yarn build | |
run: yarn build | |
- name: Run yarn test262 | |
run: exit 0 # TODO remove test262 from required tests for CI | |
platform-compatibility-test: | |
name: platform-compatibility-test | |
# begin macro | |
runs-on: ${{ matrix.platform }} | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [18.x, 20.x] | |
platform: [ubuntu-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Echo node version | |
run: node --version | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT | |
- name: Cache npm modules | |
uses: actions/cache@v3 | |
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
- name: Install dependencies | |
run: yarn --frozen-lockfile | |
# end macro | |
- name: 'build' | |
run: yarn run build | |
- name: 'switch to node v12' | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '12.x' | |
- name: Echo node version | |
run: node --version | |
- name: Run yarn test:platform-compatibility | |
run: cd packages/ses && yarn test:platform-compatibility | |
viable-release: | |
name: viable-release | |
# begin macro | |
runs-on: ${{ matrix.platform }} | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [18.x, 20.x] | |
platform: [ubuntu-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Echo node version | |
run: node --version | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT | |
- name: Cache npm modules | |
uses: actions/cache@v3 | |
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
- name: Install dependencies | |
run: yarn --frozen-lockfile | |
# end macro | |
- name: build | |
run: yarn run build | |
- name: build:types | |
run: yarn lerna run build:types | |
- name: pack | |
# Cannot use yarn lerna run pack | |
run: yarn lerna exec yarn pack | |
- name: clean:types | |
run: yarn lerna run clean:types |