Skip to content

Commit

Permalink
chore: add workflow that tests if tarball is installable
Browse files Browse the repository at this point in the history
  • Loading branch information
LucianBuzzo committed Mar 5, 2024
1 parent d49ee2d commit 928f67c
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 1 deletion.
42 changes: 42 additions & 0 deletions .github/workflows/npm-pack-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: NPM pack check
on:
pull_request:
branches:
- master
jobs:
npm-pack-check:
runs-on: ubuntu-latest
# Only run this job if the PR is from a trusted collaborator (i.e. not a fork)
if: github.event.pull_request.head.repo.full_name == github.repository
steps:
# Checkout project repository
- name: Checkout
uses: actions/[email protected]

# Setup Node.js environment
- name: Setup Node.js
uses: actions/setup-node@v3
with:
registry-url: https://registry.npmjs.org/
node-version: 20

# Install dependencies so that prepublish scripts work as expected
- name: Install deps
run: npm i

- name: Build package
run: npm run build

- name: Create test install directory
run: mkdir ../test-install

# Pack the package and move it to the test install directory, then
# install it and ensure that it can be "required"
- name: Ensure pack file can be installed
run: |
export PACK_FILENAME=$(npm pack --json | jq -r '.[] | .filename')
mv $PACK_FILENAME ../test-install/
mv test/npm-pack.js ../test-install/
cd ../test-install
npm install $PACK_FILENAME
node npm-pack.js
2 changes: 1 addition & 1 deletion .github/workflows/publish-beta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
uses: actions/setup-node@v3
with:
registry-url: https://registry.npmjs.org/
node-version: 16
node-version: 20

# Use a cache for dependencies
- uses: actions/[email protected]
Expand Down
12 changes: 12 additions & 0 deletions test/npm-pack.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/**
* This is a simple test script that checks that the package can be required and
* that the setup export is defined.
* This script is used in the `npm-pack-check` GitHub workflow.
*/
const yates = require("@cerebruminc/yates");

if (typeof yates.setup === "undefined") {
throw new Error("setup export is undefined");
}

console.log("Success!");

0 comments on commit 928f67c

Please sign in to comment.