name: CI on: [push, pull_request] jobs: build_and_lint: runs-on: ubuntu-latest steps: - name: Checkout the repository uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: lts/* cache: npm - name: Retrieve the cached "node_modules" directory (if present) uses: actions/cache@v3 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 publishing in CI, follow the instructions here: # https://github.com/IsaacScript/isaac-steam-workshop-upload # Then, uncomment the lines below. #- name: Upload the mod to Steam Workshop (if this is a release commit) # uses: IsaacScript/isaac-steam-workshop-upload@v2 # if: "contains(github.event.head_commit.message, 'chore: release') && github.event_name != 'pull_request'" # with: # mod_path: mod # env: # CONFIG_VDF_CONTENTS: ${{ secrets.CONFIG_VDF_CONTENTS }} # To enable CI failure notifications over Discord: # - Right click on a channel in Discord and select "Edit Channel". # - Click on "Integrations" on the left menu. # - Click on the "Create Webhook" button. # - Click on the box for the new webhook that was created. # - Change the name to "GitHub". # - Change the image to: https://github.com/IsaacScript/isaacscript/raw/main/misc/github.png # - Click on the "Save Changes" button at the bottom. # - Click on the "Copy Webhook URL" button. # - Go to the main page for your repository on GitHub. # - Click on the "Settings" tab near the top. # - Click on "Secrets and variables" in the left menu. # - Click on "Actions" from the dropdown list. # - Click on the "New repository secret" button in the top right. # - For the "Name" box, use "DISCORD_WEBHOOK" (without the quotes). # - For the "Secret" box, paste in the URL that was copied in the "Copy Webhook URL" step. # - Click on the "Add secret" button. # - Delete this comment and 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@v3 # - 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: ""