From 1deb674da156b359b525ada895d1381b66dbeb15 Mon Sep 17 00:00:00 2001 From: Dominik Pschenitschni Date: Wed, 2 Apr 2025 12:05:40 +0200 Subject: [PATCH] feat: composite action for frontend setup --- .github/actions/setup-frontend/action.yml | 18 ++++++ .github/workflows/release.yml | 18 +----- .github/workflows/test.yml | 67 ++++------------------- 3 files changed, 31 insertions(+), 72 deletions(-) create mode 100644 .github/actions/setup-frontend/action.yml diff --git a/.github/actions/setup-frontend/action.yml b/.github/actions/setup-frontend/action.yml new file mode 100644 index 000000000..600a1df7e --- /dev/null +++ b/.github/actions/setup-frontend/action.yml @@ -0,0 +1,18 @@ +name: Setup Frontend +description: Common setup for frontend jobs using pnpm +runs: + using: "composite" + steps: + - uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4 + with: + run_install: false + package_json_file: frontend/package.json + - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 + with: + node-version-file: frontend/.nvmrc + cache: 'pnpm' + cache-dependency-path: frontend/pnpm-lock.yaml + - name: Install dependencies + working-directory: frontend + run: pnpm install + shell: bash diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d2483246b..bb2f9760b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,22 +55,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4 - name: Install pnpm - with: - run_install: false - package_json_file: frontend/package.json - - name: Install Node.js - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 - with: - node-version-file: frontend/.nvmrc - cache: 'pnpm' - cache-dependency-path: frontend/pnpm-lock.yaml - - name: Install dependencies + - uses: ./.github/actions/setup-frontend + - name: Build frontend working-directory: frontend - run: | - pnpm install - pnpm build + run: pnpm build - name: Store frontend dist uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 491a4dcdc..991949ea9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -226,65 +226,29 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4 - name: Install pnpm - with: - run_install: false - package_json_file: frontend/package.json - - name: Install Node.js - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 - with: - node-version-file: frontend/.nvmrc - cache: 'pnpm' - cache-dependency-path: frontend/pnpm-lock.yaml + - uses: ./.github/actions/setup-frontend - name: Lint - run: | - cd frontend - pnpm install - pnpm lint + working-directory: frontend + run: pnpm lint frontend-typecheck: runs-on: ubuntu-latest steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4 - name: Install pnpm - with: - run_install: false - package_json_file: frontend/package.json - - name: Install Node.js - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 - with: - node-version-file: frontend/.nvmrc - cache: 'pnpm' - cache-dependency-path: frontend/pnpm-lock.yaml + - uses: ./.github/actions/setup-frontend - name: Typecheck continue-on-error: true - run: | - cd frontend - pnpm install - pnpm typecheck + working-directory: frontend + run: pnpm typecheck test-frontend-unit: runs-on: ubuntu-latest steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4 - name: Install pnpm - with: - run_install: false - package_json_file: frontend/package.json - - name: Install Node.js - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 - with: - node-version-file: frontend/.nvmrc - cache: 'pnpm' - cache-dependency-path: frontend/pnpm-lock.yaml + - uses: ./.github/actions/setup-frontend - name: Run unit tests - run: | - cd frontend - pnpm install - pnpm test:unit + working-directory: frontend + run: pnpm test:unit test-frontend-e2e: runs-on: ubuntu-latest @@ -292,17 +256,7 @@ jobs: - api-build steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4 - name: Install pnpm - with: - run_install: false - package_json_file: frontend/package.json - - name: Install Node.js - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 - with: - node-version-file: frontend/.nvmrc - cache: 'pnpm' - cache-dependency-path: frontend/pnpm-lock.yaml + - uses: ./.github/actions/setup-frontend - name: Download Vikunja Binary uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4 with: @@ -310,7 +264,6 @@ jobs: - name: Build frontend for test run: | cd frontend - pnpm install pnpm cypress install pnpm build:test - name: Run api