From 60102f28b645fb7b0d1e6c1683f3ba165f49ad16 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Thu, 28 Sep 2023 02:22:58 -0400 Subject: [PATCH] Refactor GH actions --- .github/workflows/{tsc.yml => build.yml} | 23 ++++++--- .../{codeql-analysis.yml => codeql.yml} | 23 +++++---- .github/workflows/{lint.yml => quality.yml} | 48 ++++++++++++++++++- .../workflows/{repo-stale.yaml => stale.yml} | 0 4 files changed, 76 insertions(+), 18 deletions(-) rename .github/workflows/{tsc.yml => build.yml} (56%) rename .github/workflows/{codeql-analysis.yml => codeql.yml} (71%) rename .github/workflows/{lint.yml => quality.yml} (68%) rename .github/workflows/{repo-stale.yaml => stale.yml} (100%) diff --git a/.github/workflows/tsc.yml b/.github/workflows/build.yml similarity index 56% rename from .github/workflows/tsc.yml rename to .github/workflows/build.yml index 35bde340f9..e6d71a2408 100644 --- a/.github/workflows/tsc.yml +++ b/.github/workflows/build.yml @@ -1,14 +1,19 @@ -name: TypeScript Build Check +name: Build + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true on: push: branches: [ master, release* ] pull_request: branches: [ master, release* ] + workflow_dispatch: jobs: - tsc: - name: Run TypeScript build check + run-build-prod: + name: Run production build runs-on: ubuntu-latest steps: @@ -25,8 +30,12 @@ jobs: - name: Install Node.js dependencies run: npm ci --no-audit - - name: Run tsc - run: npm run build:check + - name: Run a production build + run: npm run build:production - - name: Run test suite - run: npm run test + - name: Upload artifact + uses: actions/upload-artifact@v3.1.3 + with: + name: jellyfin-web__prod + path: | + dist diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql.yml similarity index 71% rename from .github/workflows/codeql-analysis.yml rename to .github/workflows/codeql.yml index 6c8ffdbbf1..3e08d9ce1f 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql.yml @@ -1,31 +1,34 @@ -name: "CodeQL" +name: CodeQL + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true on: push: - branches: [ master ] + branches: [ master, release* ] pull_request: - branches: [ master ] + branches: [ master, release* ] schedule: - cron: '30 7 * * 6' jobs: - analyze: - name: Analyze + codeql: + name: CodeQL runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - language: [ 'javascript' ] steps: - name: Checkout repository uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - name: Initialize CodeQL uses: github/codeql-action/init@46ed16ded91731b2df79a2893d3aea8e9f03b5c4 # v2.20.3 with: - languages: ${{ matrix.language }} + languages: javascript queries: +security-extended + - name: Autobuild uses: github/codeql-action/autobuild@46ed16ded91731b2df79a2893d3aea8e9f03b5c4 # v2.20.3 + - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@46ed16ded91731b2df79a2893d3aea8e9f03b5c4 # v2.20.3 diff --git a/.github/workflows/lint.yml b/.github/workflows/quality.yml similarity index 68% rename from .github/workflows/lint.yml rename to .github/workflows/quality.yml index b754665bca..b4840d90c4 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/quality.yml @@ -1,4 +1,8 @@ -name: Lint +name: Quality checks + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true on: push: @@ -99,3 +103,45 @@ jobs: - name: Run stylelint run: npm run stylelint:scss + + run-tsc: + name: Run TypeScript build check + runs-on: ubuntu-latest + + steps: + - name: Check out Git repository + uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + + - name: Setup node environment + uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0 + with: + node-version: 20 + check-latest: true + cache: npm + + - name: Install Node.js dependencies + run: npm ci --no-audit + + - name: Run tsc + run: npm run build:check + + run-test: + name: Run tests + runs-on: ubuntu-latest + + steps: + - name: Check out Git repository + uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + + - name: Setup node environment + uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0 + with: + node-version: 20 + check-latest: true + cache: npm + + - name: Install Node.js dependencies + run: npm ci --no-audit + + - name: Run test suite + run: npm run test diff --git a/.github/workflows/repo-stale.yaml b/.github/workflows/stale.yml similarity index 100% rename from .github/workflows/repo-stale.yaml rename to .github/workflows/stale.yml