Skip to content

Merge pull request #343 from byu-oit/sethsmurthwaite-patch-1 #33

Merge pull request #343 from byu-oit/sethsmurthwaite-patch-1

Merge pull request #343 from byu-oit/sethsmurthwaite-patch-1 #33

Workflow file for this run

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 }}