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) mv $ARCHIVE_FILENAME mustache.tgz - name: Store package tarball for later uses: actions/upload-artifact@v2 with: name: package-output path: mustache.tgz common-js-usage: runs-on: ubuntu-latest needs: package steps: - uses: actions/checkout@v1 - name: Setup Node.js uses: actions/setup-node@v1 with: node-version: 12.x - name: Get package tarball from package step uses: actions/download-artifact@v2 with: name: package-output - name: Package, install and test run: | export UNPACK_DESTINATION=$(mktemp -d) mv mustache.tgz $UNPACK_DESTINATION cp test/module-systems/commonjs-test.js $UNPACK_DESTINATION cd $UNPACK_DESTINATION npm install mustache.tgz node commonjs-test.js esm-usage: runs-on: ubuntu-latest needs: package steps: - uses: actions/checkout@v1 - name: Setup Node.js uses: actions/setup-node@v1 with: node-version: '>=13.2.0' - name: Get package tarball from package step uses: actions/download-artifact@v2 with: name: package-output - name: Package, install and test run: | export UNPACK_DESTINATION=$(mktemp -d) mv mustache.tgz $UNPACK_DESTINATION cp test/module-systems/esm-test.mjs $UNPACK_DESTINATION cp test/module-systems/esm-test-exports.mjs $UNPACK_DESTINATION cd $UNPACK_DESTINATION npm install mustache.tgz node esm-test.mjs node esm-test-exports.mjs 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 npx mocha test/module-systems/browser-test.js 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