馃懛 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/checkout@v2.3.4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v2.1.5 | |
with: | |
node-version: 14 | |
- name: Setup Licensed | |
uses: jonabc/setup-licensed@v1.0.1 | |
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: "bot@koj.co" | |
GIT_COMMITTER_NAME: "Koj Bot" | |
GIT_COMMITTER_EMAIL: "bot@koj.co" | |
- 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: "bot@koj.co" | |
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!" | |
}) |