👷 Add Release CI #122
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: Node CI | |
on: | |
push: | |
branches: | |
- master | |
jobs: | |
release: | |
name: Build, test, and release | |
runs-on: ubuntu-18.04 | |
if: "!contains(github.event.head_commit.message, '[skip ci]')" | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
- name: Setup Node.js | |
uses: actions/[email protected] | |
with: | |
node-version: 14 | |
- name: Setup Licensed | |
uses: jonabc/[email protected] | |
with: | |
version: 2.x | |
- name: Cache node modules | |
uses: actions/cache@v2 | |
env: | |
cache-name: cache-node-modules | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-build-${{ env.cache-name }}- | |
${{ runner.os }}-build- | |
${{ runner.os }}- | |
- name: Install dependencies | |
run: npm ci | |
- name: Build TypeScript | |
run: npm run build | |
- name: Run tests | |
run: npm run test | |
- name: Release | |
run: npx semantic-release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_PAT }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
GIT_AUTHOR_NAME: "Koj Bot" | |
GIT_AUTHOR_EMAIL: "[email protected]" | |
GIT_COMMITTER_NAME: "Koj Bot" | |
GIT_COMMITTER_EMAIL: "[email protected]" | |
- name: Check dependency licenses | |
id: licensed | |
uses: jonabc/licensed-ci@v1 | |
with: | |
config_file: .github/licensed.yml | |
github_token: ${{ secrets.GH_PAT }} | |
user_name: "KojBot" | |
user_email: "[email protected]" | |
commit_message: ":page_facing_up: Update dependency license file [skip ci]" | |
- name: Add PR comment | |
uses: actions/github-script@v3 | |
if: always() && steps.licensed.outputs.pr_number | |
with: | |
github-token: ${{ secrets.GH_PAT }} | |
script: | | |
github.issues.createComment({ | |
...context.repo, | |
issue_number: ${{ steps.licensed.outputs.pr_number }} | |
body: "I've checked the license of your new dependency and it looks good!" | |
}) |