From d8c1a38c0d241891ea1187e9df3bb02a6ebac4ae Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Wed, 11 Feb 2026 00:14:55 +0100 Subject: [PATCH] chore: optimize pipeline for speed and parallelize QA jobs --- .gitea/workflows/pipeline.yml | 78 ++++++++++++++++++++++++++++++++--- 1 file changed, 73 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/pipeline.yml b/.gitea/workflows/pipeline.yml index c04cc28..0b3af01 100644 --- a/.gitea/workflows/pipeline.yml +++ b/.gitea/workflows/pipeline.yml @@ -12,8 +12,8 @@ concurrency: cancel-in-progress: true jobs: - qa: - name: ๐Ÿงช Quality Assurance + install: + name: ๐Ÿ“ฆ Install & Sync runs-on: docker container: image: catthehacker/ubuntu:act-latest @@ -32,6 +32,7 @@ jobs: uses: actions/setup-node@v4 with: node_version: 20 + cache: 'pnpm' - name: Install dependencies run: pnpm install --frozen-lockfile @@ -40,18 +41,84 @@ jobs: if: startsWith(github.ref, 'refs/tags/v') run: pnpm sync-versions + lint: + name: ๐Ÿงน Lint + needs: install + runs-on: docker + container: + image: catthehacker/ubuntu:act-latest + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 10 + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node_version: 20 + cache: 'pnpm' + - name: Install dependencies + run: pnpm install --frozen-lockfile --prefer-offline - name: Lint run: pnpm lint + test: + name: ๐Ÿงช Test + needs: install + runs-on: docker + container: + image: catthehacker/ubuntu:act-latest + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 10 + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node_version: 20 + cache: 'pnpm' + - name: Install dependencies + run: pnpm install --frozen-lockfile --prefer-offline - name: Test run: pnpm test + build: + name: ๐Ÿ—๏ธ Build + needs: install + runs-on: docker + container: + image: catthehacker/ubuntu:act-latest + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 10 + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node_version: 20 + cache: 'pnpm' + - name: Install dependencies + run: pnpm install --frozen-lockfile --prefer-offline - name: Build run: pnpm build release: name: ๐Ÿš€ Release - needs: qa + needs: [lint, test, build] if: startsWith(github.ref, 'refs/tags/v') runs-on: docker container: @@ -74,9 +141,10 @@ jobs: uses: actions/setup-node@v4 with: node_version: 20 + cache: 'pnpm' - name: Install dependencies - run: pnpm install --frozen-lockfile + run: pnpm install --frozen-lockfile --prefer-offline - name: ๐Ÿท๏ธ Release Packages (Tag-Driven) run: | @@ -85,7 +153,7 @@ jobs: build-images: name: ๐Ÿณ Build ${{ matrix.name }} - needs: qa + needs: [lint, test, build] if: startsWith(github.ref, 'refs/tags/v') runs-on: docker container: