52 lines
1.7 KiB
YAML
52 lines
1.7 KiB
YAML
name: CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build_and_lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout the repository
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v2
|
|
with:
|
|
# The default version is 14
|
|
# The ESLint config requires Node 16 to work properly
|
|
node-version: '16'
|
|
|
|
- name: Retrieve the cached "node_modules" directory (if present)
|
|
uses: actions/cache@v2
|
|
id: node-cache
|
|
with:
|
|
path: node_modules
|
|
key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
|
|
|
|
- name: Install dependencies (if the cached directory was not found)
|
|
if: steps.node-cache.outputs.cache-hit != 'true'
|
|
run: npm ci
|
|
|
|
- name: Test to see if the project compiles
|
|
run: bash build.sh
|
|
|
|
- name: Perform automated checks
|
|
run: bash lint.sh
|
|
|
|
# To enable CI failure notifications over Discord, add a "DISCORD_WEBHOOK" secret to the
|
|
# repository equal to the URL for the webhook, and then uncomment the lines below
|
|
|
|
#discord:
|
|
# name: Discord Failure Notification
|
|
# needs: [build_and_lint]
|
|
# if: always() # This is needed to always run this job, even if the other jobs fail
|
|
# runs-on: ubuntu-latest
|
|
# steps:
|
|
# - uses: technote-space/workflow-conclusion-action@v2
|
|
# - if: ${{ secrets.DISCORD_WEBHOOK }} != '' && env.WORKFLOW_CONCLUSION != 'success' && env.WORKFLOW_CONCLUSION != 'cancelled'
|
|
# uses: sarisia/actions-status-discord@v1
|
|
# with:
|
|
# webhook: ${{ secrets.DISCORD_WEBHOOK }}
|
|
# status: ${{ env.WORKFLOW_CONCLUSION }}
|
|
# title: ""
|