Skip to content

Merge pull request #1519 from prismicio/dani/link-variant-12 #3835

Merge pull request #1519 from prismicio/dani/link-variant-12

Merge pull request #1519 from prismicio/dani/link-variant-12 #3835

Workflow file for this run

name: ci
on: [push]
jobs:
prepare:
runs-on: [ubuntu-latest]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Cache node_modules and artifacts
uses: ./.github/actions/restore-cache
- name: Set up Node
uses: ./.github/actions/setup-node
- name: Install dependencies
run: yarn install
- name: Build essentials
uses: ./.github/actions/build-essential
prepare-win32:
runs-on: [windows-latest]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Cache node_modules and artifacts
uses: ./.github/actions/restore-cache
- name: Set up Node
uses: ./.github/actions/setup-node
- name: Install dependencies
run: yarn install
- name: Build essentials
uses: ./.github/actions/build-essential
prettier:
needs: prepare
runs-on: [ubuntu-latest]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Restore cache
uses: ./.github/actions/restore-cache
- name: Set up Node
uses: ./.github/actions/setup-node
- name: Prettier
run: yarn prettier:check
packages:
needs: prepare
runs-on: [ubuntu-latest]
strategy:
fail-fast: false
matrix:
package:
# Don't forget to replicate this list under `packages-win32` matrix
- "@slicemachine/plugin-kit"
- "@slicemachine/manager"
- "@slicemachine/init"
- slice-machine-ui
- start-slicemachine
- "@slicemachine/adapter-next"
- "@slicemachine/adapter-nuxt"
- "@slicemachine/adapter-nuxt2"
- "@slicemachine/adapter-sveltekit"
- "@slicemachine/e2e"
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Restore cache
uses: ./.github/actions/restore-cache
- name: Set up Node
uses: ./.github/actions/setup-node
- name: Validate dependencies
run: yarn workspace ${{ matrix.package }} depcheck
- name: Audit dependencies
if: matrix.package != '@slicemachine/e2e'
run: yarn workspace ${{ matrix.package }} audit
- name: Lint
run: yarn workspace ${{ matrix.package }} lint
- name: Stylelint
if: matrix.package == 'slice-machine-ui'
run: yarn workspace ${{ matrix.package }} stylelint
- name: Generate TypeScript definition files from CSS Modules
if: matrix.package == 'slice-machine-ui'
run: yarn workspace ${{ matrix.package }} typed-css-modules
- name: Types
run: yarn workspace ${{ matrix.package }} types
- name: Unit
if: matrix.package != '@slicemachine/e2e'
run: yarn workspace ${{ matrix.package }} unit
env:
EMAIL: ${{ secrets.EMAIL }}
PASSWORD: ${{ secrets.PASSWORD }}
REPO_URL: ${{ secrets.REPO_URL }}
wroom_endpoint: ${{ secrets.PRISMIC_URL }}
authentication_server_endpoint: ${{ secrets.AUTHENTICATION_SERVER_ENDPOINT }}
customtypesapi_endpoint: ${{ secrets.CUSTOMTYPESAPI_ENDPOINT }}
user_service_endpoint: ${{ secrets.USER_SERVICE_ENDPOINT }}
acl_provider_endpoint: ${{ secrets.ACL_PROVIDER_ENDPOINT }}
packages-win32:
needs: prepare-win32
runs-on: [windows-latest]
strategy:
fail-fast: false
matrix:
package:
# Don't forget to replicate this list under `packages` matrix
- "@slicemachine/plugin-kit"
- "@slicemachine/manager"
- "@slicemachine/init"
- slice-machine-ui
- start-slicemachine
- "@slicemachine/adapter-next"
- "@slicemachine/adapter-nuxt"
- "@slicemachine/adapter-nuxt2"
- "@slicemachine/adapter-sveltekit"
# - "@slicemachine/e2e" # Commented as there are no unit tests for `@slicemachine/e2e`.
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Restore cache
uses: ./.github/actions/restore-cache
- name: Set up Node
uses: ./.github/actions/setup-node
- name: Unit
run: yarn workspace ${{ matrix.package }} unit
env:
EMAIL: ${{ secrets.EMAIL }}
PASSWORD: ${{ secrets.PASSWORD }}
REPO_URL: ${{ secrets.REPO_URL }}
wroom_endpoint: ${{ secrets.PRISMIC_URL }}
authentication_server_endpoint: ${{ secrets.AUTHENTICATION_SERVER_ENDPOINT }}
customtypesapi_endpoint: ${{ secrets.CUSTOMTYPESAPI_ENDPOINT }}
user_service_endpoint: ${{ secrets.USER_SERVICE_ENDPOINT }}
acl_provider_endpoint: ${{ secrets.ACL_PROVIDER_ENDPOINT }}
e2e:
needs: prepare
runs-on: [ubuntu-latest]
strategy:
fail-fast: false
matrix:
shard: [1/8, 2/8, 3/8, 4/8, 5/8, 6/8, 7/8, 8/8]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Restore cache
uses: ./.github/actions/restore-cache
- name: Set up Node
uses: ./.github/actions/setup-node
- name: Set up Playwright browsers
run: yarn test:e2e:install
- name: Set up Slice Machine project
run: |
yarn workspaces foreach --include '{@slicemachine/adapter-next,@slicemachine/manager,@slicemachine/plugin-kit,start-slicemachine}' --parallel --topological-dev run build
yarn workspace slice-machine-ui pack --out ../../e2e-projects/next/sm.tgz
yarn workspace cimsirp add -D ./sm.tgz
echo "telemetry=false" > ./e2e-projects/next/.prismicrc
- name: Running E2E tests
run: yarn test:e2e --shard ${{ matrix.shard }}
env:
DEBUG: pw:test
- name: Upload blob report to GitHub Actions Artifacts
uses: actions/upload-artifact@v3
if: always()
with:
name: e2e-all-blob-reports
path: playwright/blob-report
retention-days: 1
e2e-merge-reports:
needs: e2e
runs-on: ubuntu-latest
if: always()
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Restore cache
uses: ./.github/actions/restore-cache
- name: Set up Node
uses: ./.github/actions/setup-node
- name: Download blob reports from GitHub Actions Artifacts
uses: actions/download-artifact@v3
with:
name: e2e-all-blob-reports
path: playwright/e2e-all-blob-reports
- name: Merge into HTML Report
run: yarn test:e2e:merge-reports --reporter html ./e2e-all-blob-reports
- name: Upload HTML report
uses: actions/upload-artifact@v3
with:
name: html-report--attempt-${{ github.run_attempt }}
path: playwright/playwright-report
retention-days: 14