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: ""