isaac-lua-definitions/isaac-typescript-definitions/.github/workflows/ci.yml

49 lines
1.4 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
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: env.WORKFLOW_CONCLUSION != 'success' && env.WORKFLOW_CONCLUSION != 'cancelled'
uses: sarisia/actions-status-discord@v1
with:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: ${{ env.WORKFLOW_CONCLUSION }}
title: ""