Skip to content

Commit

Permalink
Build ESM -> CJS before running legacy Node.js tests and packaging tests
Browse files Browse the repository at this point in the history
Because the source code is written in ESM syntax and we cannot use the
`esm` package to make `require()` ESM compatible, since that package
does not support legacy versions of Node.js.

Also in our usage tests in CI, we need to mimck the npm packaging
behaviour where building is involved.
  • Loading branch information
phillipj committed Mar 5, 2021
1 parent 69bf4bd commit 3e29d67
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 1 deletion.
36 changes: 36 additions & 0 deletions .github/workflows/usage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,41 @@ name: Package usage
on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: 14.x
- name: npm install and build
run: |
npm install
npm run build
- name: Store build-output for later
uses: actions/upload-artifact@v2
with:
name: build-output
path: |
mustache.js
mustache.mjs
package:
runs-on: ubuntu-latest

needs: build
steps:
- uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: 14.x
- name: Get build-output from build step
uses: actions/download-artifact@v2
with:
name: build-output
- name: Create package tarball
run: |
export ARCHIVE_FILENAME=$(npm pack | tail -n 1)
Expand Down Expand Up @@ -71,12 +97,17 @@ jobs:
browser-usage:
runs-on: ubuntu-latest

needs: build
steps:
- uses: actions/checkout@v1
- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: 12.x
- name: Get build-output from build step
uses: actions/download-artifact@v2
with:
name: build-output
- name: Install and test
run: |
npm ci
Expand All @@ -85,10 +116,15 @@ jobs:
deno-usage:
runs-on: ubuntu-latest

needs: build
steps:
- uses: actions/checkout@v1
- uses: denolib/setup-deno@master
with:
deno-version: 'v1.0.0'
- name: Get build-output from build step
uses: actions/download-artifact@v2
with:
name: build-output
- run: deno --version
- run: deno test --allow-net=deno.land test/module-systems/deno-test.ts
26 changes: 26 additions & 0 deletions .github/workflows/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,35 @@ jobs:
npm install
npm run test-unit
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: 14.x
- name: npm install and build
run: |
npm install
npm run build
- name: Store build-output for later
uses: actions/upload-artifact@v2
with:
name: build-output
path: |
mustache.js
mustache.mjs
tests-on-legacy:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [0.10.x, 0.12.x, 4.x, 6.x, 8.x]

needs: build
steps:
- uses: actions/checkout@v2
with:
Expand All @@ -50,6 +72,10 @@ jobs:
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Get build-output from build step
uses: actions/download-artifact@v2
with:
name: build-output
- name: npm install and test
run: |
npm install mocha@3 chai@3
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@
"pre-test-browser": "node test/create-browser-suite.js",
"test-browser": "npm run pre-test-browser && zuul -- test/context-test.js test/parse-test.js test/scanner-test.js test/render-test-browser.js",
"test-browser-local": "npm run pre-test-browser && zuul --local 8080 -- test/context-test.js test/scanner-test.js test/parse-test.js test/render-test-browser.js",
"postversion": "scripts/bump-version-in-source"
"postversion": "scripts/bump-version-in-source",
"prepublishOnly": "npm run build"
},
"devDependencies": {
"chai": "^3.4.0",
Expand Down

0 comments on commit 3e29d67

Please sign in to comment.