Skip to content

Commit

Permalink
Enable CI
Browse files Browse the repository at this point in the history
  • Loading branch information
jakebailey committed Jun 28, 2024
1 parent 6af27e6 commit 208e064
Showing 1 changed file with 57 additions and 19 deletions.
76 changes: 57 additions & 19 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,21 +29,13 @@ jobs:
- windows-latest
- macos-14
node-version:
- '22'
- '20'
- '18'
- '16'
- '14'
- 23-nightly
bundle:
- 'true'
include:
- node-version: '*'
- node-version: 23-nightly
bundle: false
os: ubuntu-latest
exclude:
# No Node 14 on ARM macOS
- node-version: '14'
os: macos-14

runs-on: ${{ matrix.os }}
name: Test Node ${{ matrix.node-version }} on ${{ matrix.os }}${{ (!matrix.bundle && ' with --no-bundle') || '' }}
Expand All @@ -55,19 +47,29 @@ jobs:
with:
node-version: ${{ matrix.node-version }}
check-latest: true

- run: |
echo "value=--no-warnings=ExperimentalWarning --experimental-require-module" >> "$GITHUB_OUTPUT"
name: Enable require(ESM)
id: node-options
- run: npm ci

- name: Tests
id: test
# run tests, but lint separately
run: npm run test -- --no-lint --bundle=${{ matrix.bundle }}
env:
NODE_OPTIONS: ${{ steps.node-options.outputs.value }}

- name: Print baseline diff on failure
if: ${{ failure() && steps.test.conclusion == 'failure' }}
run: |
npx hereby baseline-accept
git add tests/baselines/reference
git diff --staged --exit-code
env:
NODE_OPTIONS: ${{ steps.node-options.outputs.value }}

lint:
runs-on: ubuntu-latest
Expand All @@ -76,7 +78,7 @@ jobs:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '*'
node-version: '23-nightly'
check-latest: true
- run: npm ci

Expand Down Expand Up @@ -104,7 +106,7 @@ jobs:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '*'
node-version: '23-nightly'
check-latest: true
- run: npm ci

Expand All @@ -125,7 +127,7 @@ jobs:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '*'
node-version: '23-nightly'
check-latest: true
- run: npm ci

Expand All @@ -142,7 +144,7 @@ jobs:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '*'
node-version: '23-nightly'
check-latest: true
- run: npm ci

Expand All @@ -157,8 +159,14 @@ jobs:

- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '*'
node-version: '23-nightly'
check-latest: true

- run: |
echo "value=--no-warnings=ExperimentalWarning --experimental-require-module" >> "$GITHUB_OUTPUT"
name: Enable require(ESM)
id: node-options
- run: |
npm --version
# corepack enable npm
Expand All @@ -168,12 +176,16 @@ jobs:
- run: npm ci

- run: npx hereby lkg
env:
NODE_OPTIONS: ${{ steps.node-options.outputs.value }}
- run: |
node ./scripts/addPackageJsonGitHead.mjs package.json
npm pack
mv typescript*.tgz typescript.tgz
echo "package=$PWD/typescript.tgz" >> "$GITHUB_OUTPUT"
id: pack
env:
NODE_OPTIONS: ${{ steps.node-options.outputs.value }}
- name: Smoke test
run: |
Expand All @@ -189,6 +201,8 @@ jobs:
node $GITHUB_WORKSPACE/scripts/checkModuleFormat.mjs typescript
node $GITHUB_WORKSPACE/scripts/checkModuleFormat.mjs typescript/lib/tsserverlibrary
env:
NODE_OPTIONS: ${{ steps.node-options.outputs.value }}

package-size:
runs-on: ubuntu-latest
Expand All @@ -206,7 +220,7 @@ jobs:

- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '*'
node-version: '23-nightly'
check-latest: true
- run: |
npm --version
Expand Down Expand Up @@ -240,7 +254,7 @@ jobs:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '*'
node-version: 23-nightly
check-latest: true
- run: npm ci

Expand All @@ -257,18 +271,30 @@ jobs:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '*'
node-version: 23-nightly
check-latest: true

- run: |
echo "value=--no-warnings=ExperimentalWarning --experimental-require-module" >> "$GITHUB_OUTPUT"
name: Enable require(ESM)
id: node-options
- run: npm ci

- name: Build tsc
run: npx hereby tsc
env:
NODE_OPTIONS: ${{ steps.node-options.outputs.value }}

- name: Clean
run: npx hereby clean-src
env:
NODE_OPTIONS: ${{ steps.node-options.outputs.value }}

- name: Self build
run: npx hereby build-src --built
env:
NODE_OPTIONS: ${{ steps.node-options.outputs.value }}

baselines:
runs-on: ubuntu-latest
Expand All @@ -277,20 +303,30 @@ jobs:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: '*'
node-version: 23-nightly
check-latest: true

- run: |
echo "value=--no-warnings=ExperimentalWarning --experimental-require-module" >> "$GITHUB_OUTPUT"
name: Enable require(ESM)
id: node-options
- run: npm ci

- name: Remove all baselines
run: rm -rf tests/baselines/reference

- name: Run tests
run: npm test &> /dev/null || exit 0
env:
NODE_OPTIONS: ${{ steps.node-options.outputs.value }}

- name: Accept baselines
run: |
npx hereby baseline-accept
git add tests/baselines/reference
env:
NODE_OPTIONS: ${{ steps.node-options.outputs.value }}

- name: Check baselines
id: check-baselines
Expand All @@ -309,6 +345,8 @@ jobs:
git diff --staged > fix_baselines.patch
exit 1
fi
env:
NODE_OPTIONS: ${{ steps.node-options.outputs.value }}

- name: Upload baseline diff artifact
if: ${{ failure() && steps.check-baselines.conclusion == 'failure' }}
Expand Down

0 comments on commit 208e064

Please sign in to comment.