name: "Validate" on: pull_request: # The branches below must be a subset of the branches above branches: [ master ] # runs on every push jobs: validate: name: Build and Validate runs-on: ubuntu-latest timeout-minutes: 10 strategy: fail-fast: false matrix: node-version: [14.x] steps: - uses: actions/checkout@v1 # checkout latest commit - name: Use Node.js ${{ matrix.node-version }} # set up Node.js uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - name: Clean install of dependencies # runs the npm ci command to install all dependencies run: npm ci env: CI: "true" - name: Validate joke files # validates the joke files run: npm run validate-jokes env: CI: "true" - name: Validate joke IDs # makes sure all jokes have the correct ID run: npm run validate-ids env: CI: "true" - name: Send Discord success notification # sends a Discord notification env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} uses: Ilshidur/action-discord@master with: args: '✅ **JokeAPI CI** (on `{{GITHUB_HEAD_REF}}`) was successful (see https://github.com/{{GITHUB_REPOSITORY}}/actions/runs/{{GITHUB_RUN_ID}})' if: ${{ github.actor != 'dependabot' }} # don't trigger on dependabot PRs since they don't have access to secrets - name: Send Discord failure notification # sends a Discord notification env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} uses: Ilshidur/action-discord@master with: args: '🚫 **JokeAPI CI** (on `{{GITHUB_HEAD_REF}}`) has failed (see https://github.com/{{GITHUB_REPOSITORY}}/actions/runs/{{GITHUB_RUN_ID}})' if: ${{ failure() && github.actor != 'dependabot' }} # don't trigger on dependabot PRs since they don't have access to secrets