From 5504a4ea745b28dafda50cfdecebbc1a86145da2 Mon Sep 17 00:00:00 2001 From: allison-truhlar Date: Tue, 20 Jan 2026 11:11:03 -0500 Subject: [PATCH 1/5] ci(gh actions): streamline build workflow and add caching --- .github/workflows/build.yml | 90 +++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 50 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d70171c1..ce890f2b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,10 +12,13 @@ concurrency: cancel-in-progress: true jobs: - build: - name: Build + build-and-test: + name: Build and Test runs-on: ubuntu-latest + env: + PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/pw-browsers + steps: - name: Checkout uses: actions/checkout@v4 @@ -24,12 +27,33 @@ jobs: uses: prefix-dev/setup-pixi@v0.9.1 with: pixi-version: v0.55.0 - cache: false + cache: true manifest-path: pyproject.toml + - name: Cache node modules + uses: actions/cache@v4 + with: + path: | + frontend/node_modules + frontend/ui-tests/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('frontend/package.json', 'frontend/ui-tests/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Cache Playwright browsers + uses: actions/cache@v4 + with: + path: ${{ github.workspace }}/pw-browsers + key: ${{ runner.os }}-playwright-${{ hashFiles('frontend/ui-tests/yarn.lock') }} + - name: Install dependencies run: | pixi run dev-install + pixi run node-install-ui-tests + + - name: Install Playwright browser + run: npx playwright install chromium + working-directory: frontend/ui-tests - name: Lint run: | @@ -46,6 +70,19 @@ jobs: set -eux pixi run test-backend + - name: Execute integration tests + run: | + pixi run test-ui + + - name: Upload Playwright Test report + if: ${{ !cancelled() }} + uses: actions/upload-artifact@v4 + with: + name: fileglancer-playwright-tests + path: | + frontend/ui-tests/test-results + frontend/ui-tests/playwright-report + - name: Build the frontend run: | set -eux @@ -63,53 +100,6 @@ jobs: path: dist/fileglancer* if-no-files-found: error - integration-tests: - name: Integration tests - runs-on: ubuntu-latest - - env: - PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/pw-browsers - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install pixi - uses: prefix-dev/setup-pixi@v0.9.1 - with: - pixi-version: v0.55.0 - cache: false - manifest-path: pyproject.toml - - - name: Install dependencies - run: | - pixi run dev-install - pixi run node-install-ui-tests - - - name: Install browser - run: npx playwright install chromium - working-directory: frontend/ui-tests - - - name: Set up browser cache - uses: actions/cache@v4 - with: - path: | - ${{ github.workspace }}/pw-browsers - key: ${{ runner.os }}-${{ hashFiles('frontend/ui-tests/yarn.lock') }} - - - name: Execute integration tests - run: | - pixi run test-ui - - - name: Upload Playwright Test report - if: ${{ !cancelled() }} - uses: actions/upload-artifact@v4 - with: - name: fileglancer-playwright-tests - path: | - frontend/ui-tests/test-results - frontend/ui-tests/playwright-report - check_links: name: Check README links runs-on: ubuntu-latest From 6639ab75e6d445e528d78c8037e0c477cee4b76d Mon Sep 17 00:00:00 2001 From: allison-truhlar Date: Wed, 21 Jan 2026 10:24:30 -0500 Subject: [PATCH 2/5] test(ci): turn off pixi cache in combined actino --- .github/workflows/build.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ce890f2b..6aea1a90 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,12 +23,12 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Install pixi - uses: prefix-dev/setup-pixi@v0.9.1 - with: - pixi-version: v0.55.0 - cache: true - manifest-path: pyproject.toml + - name: Install pixi + uses: prefix-dev/setup-pixi@v0.9.1 + with: + pixi-version: v0.55.0 + cache: false + manifest-path: pyproject.toml - name: Cache node modules uses: actions/cache@v4 From d215bab820e18c30e7ab410e4603c4eefa588292 Mon Sep 17 00:00:00 2001 From: allison-truhlar Date: Wed, 21 Jan 2026 10:24:54 -0500 Subject: [PATCH 3/5] chore: prettier formatting --- .github/workflows/build.yml | 144 ++++++++++++++++++------------------ 1 file changed, 72 insertions(+), 72 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6aea1a90..d5e2ddd4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,7 +5,7 @@ on: push: branches: main pull_request: - branches: '*' + branches: "*" concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} @@ -20,8 +20,8 @@ jobs: PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/pw-browsers steps: - - name: Checkout - uses: actions/checkout@v4 + - name: Checkout + uses: actions/checkout@v4 - name: Install pixi uses: prefix-dev/setup-pixi@v0.9.1 @@ -30,75 +30,75 @@ jobs: cache: false manifest-path: pyproject.toml - - name: Cache node modules - uses: actions/cache@v4 - with: - path: | - frontend/node_modules - frontend/ui-tests/node_modules - key: ${{ runner.os }}-node-${{ hashFiles('frontend/package.json', 'frontend/ui-tests/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-node- - - - name: Cache Playwright browsers - uses: actions/cache@v4 - with: - path: ${{ github.workspace }}/pw-browsers - key: ${{ runner.os }}-playwright-${{ hashFiles('frontend/ui-tests/yarn.lock') }} - - - name: Install dependencies - run: | - pixi run dev-install - pixi run node-install-ui-tests - - - name: Install Playwright browser - run: npx playwright install chromium - working-directory: frontend/ui-tests - - - name: Lint - run: | - set -eux - pixi run node-prettier-write && pixi run node-prettier-check && pixi run node-eslint-check - - - name: Test the frontend - run: | - set -eux - pixi run test-frontend - - - name: Test the backend - run: | - set -eux - pixi run test-backend - - - name: Execute integration tests - run: | - pixi run test-ui - - - name: Upload Playwright Test report - if: ${{ !cancelled() }} - uses: actions/upload-artifact@v4 - with: - name: fileglancer-playwright-tests - path: | - frontend/ui-tests/test-results - frontend/ui-tests/playwright-report - - - name: Build the frontend - run: | - set -eux - pixi run node-build - - - name: Package the app - run: | - set -eux - pixi run pypi-build - - - name: Upload package to GH - uses: actions/upload-artifact@v4 - with: - name: extension-artifacts - path: dist/fileglancer* - if-no-files-found: error + - name: Cache node modules + uses: actions/cache@v4 + with: + path: | + frontend/node_modules + frontend/ui-tests/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('frontend/package.json', 'frontend/ui-tests/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Cache Playwright browsers + uses: actions/cache@v4 + with: + path: ${{ github.workspace }}/pw-browsers + key: ${{ runner.os }}-playwright-${{ hashFiles('frontend/ui-tests/yarn.lock') }} + + - name: Install dependencies + run: | + pixi run dev-install + pixi run node-install-ui-tests + + - name: Install Playwright browser + run: npx playwright install chromium + working-directory: frontend/ui-tests + + - name: Lint + run: | + set -eux + pixi run node-prettier-write && pixi run node-prettier-check && pixi run node-eslint-check + + - name: Test the frontend + run: | + set -eux + pixi run test-frontend + + - name: Test the backend + run: | + set -eux + pixi run test-backend + + - name: Execute integration tests + run: | + pixi run test-ui + + - name: Upload Playwright Test report + if: ${{ !cancelled() }} + uses: actions/upload-artifact@v4 + with: + name: fileglancer-playwright-tests + path: | + frontend/ui-tests/test-results + frontend/ui-tests/playwright-report + + - name: Build the frontend + run: | + set -eux + pixi run node-build + + - name: Package the app + run: | + set -eux + pixi run pypi-build + + - name: Upload package to GH + uses: actions/upload-artifact@v4 + with: + name: extension-artifacts + path: dist/fileglancer* + if-no-files-found: error check_links: name: Check README links From 7457d5acc8015dc2f4e9ab81d591a1053dd2636e Mon Sep 17 00:00:00 2001 From: allison-truhlar Date: Wed, 21 Jan 2026 10:34:07 -0500 Subject: [PATCH 4/5] test: move build and package before playwright tests - in combined action workflow --- .github/workflows/build.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d5e2ddd4..d4ecd773 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -70,19 +70,6 @@ jobs: set -eux pixi run test-backend - - name: Execute integration tests - run: | - pixi run test-ui - - - name: Upload Playwright Test report - if: ${{ !cancelled() }} - uses: actions/upload-artifact@v4 - with: - name: fileglancer-playwright-tests - path: | - frontend/ui-tests/test-results - frontend/ui-tests/playwright-report - - name: Build the frontend run: | set -eux @@ -100,6 +87,19 @@ jobs: path: dist/fileglancer* if-no-files-found: error + - name: Execute integration tests + run: | + pixi run test-ui + + - name: Upload Playwright Test report + if: ${{ !cancelled() }} + uses: actions/upload-artifact@v4 + with: + name: fileglancer-playwright-tests + path: | + frontend/ui-tests/test-results + frontend/ui-tests/playwright-report + check_links: name: Check README links runs-on: ubuntu-latest From 6a69c2cfa957036c11e0a5706f08b7c69e163f6d Mon Sep 17 00:00:00 2001 From: allison-truhlar Date: Wed, 21 Jan 2026 10:38:52 -0500 Subject: [PATCH 5/5] test: remove node module caching --- .github/workflows/build.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d4ecd773..db12dac3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,15 +30,15 @@ jobs: cache: false manifest-path: pyproject.toml - - name: Cache node modules - uses: actions/cache@v4 - with: - path: | - frontend/node_modules - frontend/ui-tests/node_modules - key: ${{ runner.os }}-node-${{ hashFiles('frontend/package.json', 'frontend/ui-tests/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-node- + # - name: Cache node modules + # uses: actions/cache@v4 + # with: + # path: | + # frontend/node_modules + # frontend/ui-tests/node_modules + # key: ${{ runner.os }}-node-${{ hashFiles('frontend/package.json', 'frontend/ui-tests/yarn.lock') }} + # restore-keys: | + # ${{ runner.os }}-node- - name: Cache Playwright browsers uses: actions/cache@v4