Skip to content

feat: filtering keys by tag (#3404) #10790

feat: filtering keys by tag (#3404)

feat: filtering keys by tag (#3404) #10790

Workflow file for this run

name: Test
on:
pull_request:
push:
branches: [main]
jobs:
test:
name: 'Test'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: '20'
- uses: pnpm/action-setup@v3
name: Install pnpm
id: pnpm-install
with:
version: 8.6.12
run_install: false
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: .pnpm-store/v3
key: ${{ runner.os }}-pnpm-test-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-test-
- name: Turbo Cache
id: turbo-cache
uses: actions/cache@v4
with:
path: .turbo
key: turbo-${{ github.job }}-${{ github.sha }}
restore-keys: |
turbo-${{ github.job }}-
- name: Install
run: pnpm install --no-frozen-lockfile
- name: Build all packages
run: pnpm build || pnpm build
- name: Test
run: pnpm run test
prepare:
name: Prepare packages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: '${{ secrets.TOLGEE_MACHINE_PAT }}'
- uses: actions/setup-node@v4
with:
node-version: '20'
- uses: pnpm/action-setup@v3
name: Install pnpm
id: pnpm-install
with:
version: 8.6.12
run_install: false
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: |
.pnpm-store/v3
~/.cache/Cypress
key: ${{ runner.os }}-pnpm-prepare-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-prepare-
- name: Turbo Cache
id: turbo-cache
uses: actions/cache@v4
with:
path: .turbo
key: turbo-prepare-${{ github.job }}-${{ github.sha }}
restore-keys: |
turbo-prepare-${{ github.job }}-
- name: Create branch
run: git checkout -b test.$(git ls-files -s packages | git hash-object --stdin)
- name: Install root and packages dependencies
run: |
pnpm install --ignore-workspace
pnpm install --no-frozen-lockfile --filter='./packages/*'
- name: Update version with lerna
run: |
lerna version prerelease --yes --conventional-prerelease --preid test.$(git ls-files -s packages | git hash-object --stdin) --ignore-scripts \
--force-publish --no-push --no-git-tag-version --exact
- name: Set TOLGEE_UI_VERSION
run: |
echo "TOLGEE_UI_VERSION=$(pnpm run --silent ui-version)" >> $GITHUB_ENV
pnpm run --silent ui-version
- name: Build packages
run: pnpm build-packages
- name: Set npm registry to GitHub Packages
run: |
echo "" >> .npmrc
echo "//npm.pkg.github.com/:_authToken=${{ secrets.TOLGEE_MACHINE_PAT }}" >> .npmrc
echo "@tolgee:registry=https://npm.pkg.github.com" >> .npmrc
- name: Publish to GitHub Packages
run: pnpm publish -r --no-git-checks --tag test
env:
NODE_AUTH_TOKEN: ${{secrets.TOLGEE_MACHINE_PAT}}
- id: set-dirs
run: echo "dirs=$(ls | jq -R -s -c 'split("\n")[:-1]')" >> $GITHUB_OUTPUT
working-directory: e2e/cypress/e2e
outputs:
dirs: ${{ steps.set-dirs.outputs.dirs }}
cypress:
name: E2e
needs: prepare
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
app: ${{ fromJson(needs.prepare.outputs.dirs) }}
node: [18, 20]
steps:
- uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- uses: pnpm/action-setup@v3
name: Install pnpm
id: pnpm-install
with:
version: 8.6.12
run_install: false
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: |
.pnpm-store/v3
~/.cache/Cypress
key: ${{ runner.os }}-pnpm-cypress-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-cypress-
- name: Install for root and for e2e
run: |
pnpm install --ignore-workspace
pnpm install --filter='./e2e'
- name: Create branch
run: git checkout -b test.$(git ls-files -s packages | git hash-object --stdin)
- name: Update version with lerna
run: |
lerna version prerelease --yes --conventional-prerelease --preid test.$(git ls-files -s packages | git hash-object --stdin) --ignore-scripts \
--force-publish --no-push --no-git-tag-version --exact
- name: Remove 'workspace' field from package.json
run: node scripts/packageJsonRemoveWorkspaces.js
- name: Install testapp dependencies with npm
run: |
echo "//npm.pkg.github.com/:_authToken=${{ secrets.TOLGEE_MACHINE_PAT }}" >> .npmrc
echo "@tolgee:registry=https://npm.pkg.github.com" >> .npmrc
rm -rf node_modules
npm install --force
working-directory: testapps/${{matrix.app}}
- name: Build testapp
run: npm run build
working-directory: testapps/${{matrix.app}}
- name: Run e2e tests
run: pnpm run e2e run --headed ${{matrix.app}} --stdout prod,dev --skip-build
- uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress
path: |
e2e/cypress/videos/**/*
e2e/cypress/screenshots/**/*
static-checks:
name: Static check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: '20'
- uses: pnpm/action-setup@v3
name: Install pnpm
id: pnpm-install
with:
version: 8.6.12
run_install: false
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: .pnpm-store/v3
key: ${{ runner.os }}-pnpm-lint-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-lint-
- name: Install
run: pnpm install --no-frozen-lockfile
- name: Eslint
run: pnpm run eslint
- name: Eslint
run: pnpm --prefix e2e run eslint