keycloak-scim/.github/workflows/js-ci.yml

97 lines
2.3 KiB
YAML
Raw Normal View History

name: Keycloak JavaScript CI
on:
push:
branches-ignore:
- main
- dependabot/**
pull_request:
schedule:
- cron: 0 20,23,2,5 * * *
workflow_dispatch:
env:
NODE_VERSION: 18
concurrency:
# Only cancel jobs for PR updates
group: js-ci-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
defaults:
run:
shell: bash
jobs:
conditional:
name: Check conditional workflows and jobs
if: github.event_name != 'schedule' || github.repository == 'keycloak/keycloak'
runs-on: ubuntu-latest
outputs:
js-ci: ${{ steps.conditional.outputs.js }}
steps:
- uses: actions/checkout@v3
- id: conditional
uses: ./.github/actions/conditional
npm-run:
needs: conditional
if: needs.conditional.outputs.js-ci == 'true'
runs-on: ubuntu-latest
strategy:
matrix:
include:
# Keycloak Admin Client
- workspace: "@keycloak/keycloak-admin-client"
command: lint
- workspace: "@keycloak/keycloak-admin-client"
command: build
steps:
- uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
check-latest: true
cache: npm
cache-dependency-path: js/package-lock.json
- name: Install dependencies
working-directory: js
run: npm ci
- name: Run ${{ matrix.command }} task
working-directory: js
run: npm run ${{ matrix.command }} --workspace=${{ matrix.workspace }}
check-set-status:
name: Set check conclusion
needs:
- npm-run
runs-on: ubuntu-latest
outputs:
conclusion: ${{ steps.check.outputs.conclusion }}
steps:
- uses: actions/checkout@v3
- id: check
uses: ./.github/actions/checks-success
check:
name: Status Check - Keycloak JavaScript CI
if: always() && ( github.event_name != 'schedule' || github.repository == 'keycloak/keycloak' )
needs:
- conditional
- check-set-status
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Check status
uses: ./.github/actions/checks-job-pass
with:
2023-02-03 11:47:04 +00:00
required: ${{ needs.conditional.outputs.js-ci }}
conclusion: ${{ needs.check-set-status.outputs.conclusion }}