Merge branch 'main' of github.com:prismicio/slice-machine into dani/l… #3840
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |