Skip to content

Commit

Permalink
fix: e2e specs CI (#386)
Browse files Browse the repository at this point in the history
* fix: remove custom command, add env variables and group key, remove parrallel option

* feat: use v6 action for cypress

* feat: add GITHUB_TOKEN to env variables

* fix: add CYPRESS_ prefix to env variables

* fix: replace react condition with vite

* fix: remote workflow

* fix: google spec
  • Loading branch information
BatuhanW authored Jan 22, 2024
1 parent 1aa921c commit e336f8f
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 80 deletions.
105 changes: 42 additions & 63 deletions .github/workflows/test-local.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,77 +33,33 @@ jobs:
run: npm install
- name: Build Examples
id: build_step
run: FRAMEWORK=vite DATA_PROVIDER=${{ matrix.data_provider }} UI_FRAMEWORK=${{ matrix.ui_framework }} node ./.github/workflows/build-template.js
- name: Install Deps
run: |
cd ${{ steps.build_step.outputs.project_path }}
npm install
npm run build
npm run preview -- --port 3000 --host &
- name: Run Cypress on local
uses: cypress-io/github-action@v4
with:
command: npx cypress run --record --parallel --env=AUTH_PROVIDER=${{ steps.build_step.outputs.auth_provider }},UI_FRAMEWORK=${{ matrix.ui_framework }},FRAMEWORK=react,DATA_PROVIDER=${{ matrix.data_provider }}
install: false
start: "npm ls"
wait-on: "http://localhost:3000"
run: node ./.github/workflows/build-template.js
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
FRAMEWORK: react
FRAMEWORK: vite
DATA_PROVIDER: ${{ matrix.data_provider }}
UI_FRAMEWORK: ${{ matrix.ui_framework }}
AUTH_PROVIDER: ${{ steps.build_step.outputs.auth_provider }}
react:
runs-on: ubuntu-latest
name: react
concurrency:
group: ${{ github.ref }}-e2e-local-react-${{ matrix.data_provider }}-${{ matrix.ui_framework }}
cancel-in-progress: true
strategy:
fail-fast: false
matrix:
data_provider:
[
custom-json-rest,
strapi-v4,
nestjsx-crud,
airtable,
supabase,
appwrite,
hasura,
]
ui_framework: [antd, chakra, mantine, mui, no]
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Install
run: npm install
- name: Build Examples
id: build_step
run: FRAMEWORK=react DATA_PROVIDER=${{ matrix.data_provider }} UI_FRAMEWORK=${{ matrix.ui_framework }} node ./.github/workflows/build-template.js
- name: Install Deps
run: |
cd ${{ steps.build_step.outputs.project_path }}
npm install
npm run build
npm install -g serve
serve -s build &
npm run preview -- --port 3000 --host &
- name: Run Cypress on local
uses: cypress-io/github-action@v4
uses: cypress-io/github-action@v6
with:
command: npx cypress run --record --parallel --env=AUTH_PROVIDER=${{ steps.build_step.outputs.auth_provider }},UI_FRAMEWORK=${{ matrix.ui_framework }},FRAMEWORK=react,DATA_PROVIDER=${{ matrix.data_provider }}
install: false
record: true
start: "npm ls"
wait-on: "http://0.0.0.0:3000"
wait-on: "http://localhost:3000"
group: e2e-local-vite-${{ matrix.data_provider }}-${{ matrix.ui_framework }}-${{ steps.build_step.outputs.auth_provider }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
FRAMEWORK: react
DATA_PROVIDER: ${{ matrix.data_provider }}
UI_FRAMEWORK: ${{ matrix.ui_framework }}
AUTH_PROVIDER: ${{ steps.build_step.outputs.auth_provider }}
CYPRESS_USER_AGENT: ${{ secrets.CI_USER_AGENT }}
CYPRESS_FRAMEWORK: vite
CYPRESS_DATA_PROVIDER: ${{ matrix.data_provider }}
CYPRESS_UI_FRAMEWORK: ${{ matrix.ui_framework }}
CYPRESS_AUTH_PROVIDER: ${{ steps.build_step.outputs.auth_provider }}
nextjs:
runs-on: ubuntu-latest
name: nextjs
Expand Down Expand Up @@ -134,7 +90,11 @@ jobs:
run: npm install
- name: Build Examples
id: build_step
run: FRAMEWORK=nextjs DATA_PROVIDER=${{ matrix.data_provider }} UI_FRAMEWORK=${{ matrix.ui_framework }} node ./.github/workflows/build-template.js
run: node ./.github/workflows/build-template.js
env:
FRAMEWORK: nextjs
DATA_PROVIDER: ${{ matrix.data_provider }}
UI_FRAMEWORK: ${{ matrix.ui_framework }}
- name: Install Deps
run: |
rm -rf .eslintrc .prettierrc
Expand All @@ -143,14 +103,21 @@ jobs:
npm run build
npm run start &
- name: Run Cypress on local
uses: cypress-io/github-action@v4
uses: cypress-io/github-action@v6
with:
command: npx cypress run --record --parallel --env=AUTH_PROVIDER=${{ steps.build_step.outputs.auth_provider }},UI_FRAMEWORK=${{ matrix.ui_framework }},FRAMEWORK=nextjs,DATA_PROVIDER=${{ matrix.data_provider }}
install: false
record: true
start: "npm ls"
wait-on: "http://0.0.0.0:3000"
group: e2e-local-nextjs-${{ matrix.data_provider }}-${{ matrix.ui_framework }}-${{ steps.build_step.outputs.auth_provider }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_USER_AGENT: ${{ secrets.CI_USER_AGENT }}
CYPRESS_FRAMEWORK: nextjs
CYPRESS_DATA_PROVIDER: ${{ matrix.data_provider }}
CYPRESS_UI_FRAMEWORK: ${{ matrix.ui_framework }}
CYPRESS_AUTH_PROVIDER: ${{ steps.build_step.outputs.auth_provider }}
remix:
runs-on: ubuntu-latest
name: remix
Expand Down Expand Up @@ -181,19 +148,31 @@ jobs:
run: npm install
- name: Build Examples
id: build_step
run: FRAMEWORK=remix DATA_PROVIDER=${{ matrix.data_provider }} UI_FRAMEWORK=${{ matrix.ui_framework }} node ./.github/workflows/build-template.js
run: node ./.github/workflows/build-template.js
env:
FRAMEWORK: remix
DATA_PROVIDER: ${{ matrix.data_provider }}
UI_FRAMEWORK: ${{ matrix.ui_framework }}
- name: Install Deps
run: |
cd ${{ steps.build_step.outputs.project_path }}
npm install
npm run build
HOST=0.0.0.0 npm run start &
- name: Run Cypress on local
uses: cypress-io/github-action@v4
uses: cypress-io/github-action@v6
with:
command: npx cypress run --record --parallel --env=AUTH_PROVIDER=${{ steps.build_step.outputs.auth_provider }},UI_FRAMEWORK=${{ matrix.ui_framework }},FRAMEWORK=remix,DATA_PROVIDER=${{ matrix.data_provider }}
install: false
record: true
start: "npm ls"
wait-on: "http://0.0.0.0:3000"
group: e2e-local-remix-${{ matrix.data_provider }}-${{ matrix.ui_framework }}-${{ steps.build_step.outputs.auth_provider }}
env:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_USER_AGENT: ${{ secrets.CI_USER_AGENT }}
CYPRESS_FRAMEWORK: remix
CYPRESS_DATA_PROVIDER: ${{ matrix.data_provider }}
CYPRESS_UI_FRAMEWORK: ${{ matrix.ui_framework }}
CYPRESS_AUTH_PROVIDER: ${{ steps.build_step.outputs.auth_provider }}
55 changes: 44 additions & 11 deletions .github/workflows/test-remote.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,23 +34,34 @@ jobs:
run: npm install
- name: Download Example
id: download_step
run: FRAMEWORK=vite CI_USER_AGENT=${{secrets.CI_USER_AGENT}} DATA_PROVIDER=${{matrix.data_provider}} UI_FRAMEWORK=${{matrix.ui_framework}} node ./.github/workflows/build-remote.js
run: node ./.github/workflows/build-remote.js
env:
FRAMEWORK: vite
CI_USER_AGENT: ${{ secrets.CI_USER_AGENT }}
DATA_PROVIDER: ${{ matrix.data_provider }}
UI_FRAMEWORK: ${{ matrix.ui_framework }}
- name: Install & Build Deps
run: |
cd ${{ steps.download_step.outputs.project_path }}
npm install
npm run build
npm run preview -- --port 3000 --host &
- name: Run Cypress on local
uses: cypress-io/github-action@v4
uses: cypress-io/github-action@v6
with:
command: npx cypress run --record --parallel --env=AUTH_PROVIDER=${{ steps.download_step.outputs.auth_provider }},UI_FRAMEWORK=${{ matrix.ui_framework }},FRAMEWORK=react,DATA_PROVIDER=${{ matrix.data_provider }}
install: false
record: true
start: "npm ls"
wait-on: "http://localhost:3000"
group: e2e-remote-vite-${{ matrix.data_provider }}-${{ matrix.ui_framework }}-${{ steps.download_step.outputs.auth_provider }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_USER_AGENT: ${{ secrets.CI_USER_AGENT }}
CYPRESS_FRAMEWORK: vite
CYPRESS_DATA_PROVIDER: ${{ matrix.data_provider }}
CYPRESS_UI_FRAMEWORK: ${{ matrix.ui_framework }}
CYPRESS_AUTH_PROVIDER: ${{ steps.download_step.outputs.auth_provider }}
refine-nextjs:
runs-on: ubuntu-latest
name: NextJS
Expand Down Expand Up @@ -81,7 +92,12 @@ jobs:
run: npm install
- name: Download Example
id: download_step
run: FRAMEWORK=nextjs CI_USER_AGENT=${{secrets.CI_USER_AGENT}} DATA_PROVIDER=${{matrix.data_provider}} UI_FRAMEWORK=${{matrix.ui_framework}} node ./.github/workflows/build-remote.js
run: node ./.github/workflows/build-remote.js
env:
FRAMEWORK: nextjs
CI_USER_AGENT: ${{ secrets.CI_USER_AGENT }}
DATA_PROVIDER: ${{ matrix.data_provider }}
UI_FRAMEWORK: ${{ matrix.ui_framework }}
- name: Install & Build Deps
run: |
rm -rf .eslintrc .prettierrc
Expand All @@ -90,15 +106,21 @@ jobs:
npm run build
npm run start &
- name: Run Cypress on local
uses: cypress-io/github-action@v4
uses: cypress-io/github-action@v6
with:
install: false
command: npx cypress run --record --parallel --env=AUTH_PROVIDER=${{ steps.download_step.outputs.auth_provider }},UI_FRAMEWORK=${{ matrix.ui_framework }},FRAMEWORK=nextjs,DATA_PROVIDER=${{ matrix.data_provider }}
record: true
start: "npm ls"
wait-on: "http://0.0.0.0:3000"
wait-on: "http://localhost:3000"
group: e2e-remote-nextjs-${{ matrix.data_provider }}-${{ matrix.ui_framework }}-${{ steps.download_step.outputs.auth_provider }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_USER_AGENT: ${{ secrets.CI_USER_AGENT }}
CYPRESS_FRAMEWORK: nextjs
CYPRESS_DATA_PROVIDER: ${{ matrix.data_provider }}
CYPRESS_UI_FRAMEWORK: ${{ matrix.ui_framework }}
CYPRESS_AUTH_PROVIDER: ${{ steps.download_step.outputs.auth_provider }}
refine-remix:
runs-on: ubuntu-latest
name: Remix
Expand Down Expand Up @@ -129,20 +151,31 @@ jobs:
run: npm install
- name: Download Example
id: download_step
run: FRAMEWORK=remix CI_USER_AGENT=${{secrets.CI_USER_AGENT}} DATA_PROVIDER=${{matrix.data_provider}} UI_FRAMEWORK=${{matrix.ui_framework}} node ./.github/workflows/build-remote.js
run: node ./.github/workflows/build-remote.js
env:
FRAMEWORK: remix
CI_USER_AGENT: ${{ secrets.CI_USER_AGENT }}
DATA_PROVIDER: ${{ matrix.data_provider }}
UI_FRAMEWORK: ${{ matrix.ui_framework }}
- name: Install & Build Deps
run: |
cd ${{ steps.download_step.outputs.project_path }}
npm install
npm run build
HOST=0.0.0.0 npm run start &
- name: Run Cypress on local
uses: cypress-io/github-action@v4
uses: cypress-io/github-action@v6
with:
install: false
command: npx cypress run --record --parallel --env=AUTH_PROVIDER=${{ steps.download_step.outputs.auth_provider }},UI_FRAMEWORK=${{ matrix.ui_framework }},FRAMEWORK=remix,DATA_PROVIDER=${{ matrix.data_provider }}
record: true
start: "npm ls"
wait-on: "http://0.0.0.0:3000"
wait-on: "http://localhost:3000"
group: e2e-remote-remix-${{ matrix.data_provider }}-${{ matrix.ui_framework }}-${{ steps.download_step.outputs.auth_provider }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_USER_AGENT: ${{ secrets.CI_USER_AGENT }}
CYPRESS_FRAMEWORK: remix
CYPRESS_DATA_PROVIDER: ${{ matrix.data_provider }}
CYPRESS_UI_FRAMEWORK: ${{ matrix.ui_framework }}
CYPRESS_AUTH_PROVIDER: ${{ steps.download_step.outputs.auth_provider }}
7 changes: 1 addition & 6 deletions cypress/e2e/build-test.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,7 @@ describe("build test", () => {

cy.wait(1000);

if (
Cypress.env("AUTH_PROVIDER") === "google" &&
Cypress.env("FRAMEWORK") === "react"
) {
getIframeBody().contains("Google");
} else {
if (Cypress.env("AUTH_PROVIDER") !== "google") {
cy.contains("Sign in").click();

cy.url().should("not.contain", "http://localhost:3000");
Expand Down

0 comments on commit e336f8f

Please sign in to comment.