Merge pull request #343 from byu-oit/sethsmurthwaite-patch-1 #33
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: Deployment | |
on: | |
push: | |
branches: [main] | |
paths-ignore: | |
- .gitignore | |
- LICENSE | |
- README.md | |
- .github/dependabot.yml | |
- .github/workflows/ci.yml | |
- .github/workflows/bump.yml | |
env: | |
node_version: "18.x" | |
jobs: | |
env: | |
name: Set Env Vars | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set Env Vars | |
run: | | |
matrix='{ | |
"registry":[ | |
{ | |
"token":"NPM_TOKEN", | |
"url":"https://registry.npmjs.org" | |
}, | |
{ | |
"token":"GITHUB_TOKEN", | |
"url":"https://npm.pkg.github.com" | |
} | |
] | |
}' | |
echo matrix=`echo $matrix | jq -c .` >> $GITHUB_ENV | |
outputs: | |
matrix: ${{ env.matrix }} | |
test: | |
name: Test Module | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: ${{ env.node_version }} | |
- name: npm install | |
run: npm install | |
- name: npm test | |
run: | | |
npm run coverage | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v2 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: true | |
lint: | |
name: Lint Module | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: ${{ env.node_version }} | |
- name: npm install | |
run: npm install | |
- name: npm lint | |
run: npm run lint | |
publish: | |
needs: [env, test, lint] # Wait for checks to finish before publishing | |
name: Publish node package | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: ${{ fromJson(needs.env.outputs.matrix) }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Disallow Concurrent Runs | |
uses: byu-oit/github-action-disallow-concurrent-runs@v2 | |
with: | |
token: ${{ github.token }} | |
- name: Set up Node.js | |
uses: actions/setup-node@v2.1.4 | |
with: | |
node-version: ${{ env.node_version }} | |
registry-url: ${{ matrix.registry.url }} | |
scope: '@byu-oit' | |
- name: npm install | |
run: npm install | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets[matrix.registry.token] }} | |
# The prepublishOnly script builds the package before publishing | |
- name: Publish | |
run: npm publish --access=public | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets[matrix.registry.token] }} | |
# https://github.com/marketplace/actions/release-drafter | |
release: | |
name: Publish Release | |
runs-on: ubuntu-latest | |
needs: [publish] | |
steps: | |
- uses: actions/checkout@v2 | |
- id: version | |
run: echo ::set-output name=version::$(node -p 'require("./package.json").version') | |
- name: Publish Release | |
uses: release-drafter/release-drafter@v5 | |
with: | |
publish: true | |
version: ${{ steps.version.outputs.version }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |