test: use shared as integration-tests level (#12278)
This commit is contained in:
216
.github/workflows/action.yml
vendored
216
.github/workflows/action.yml
vendored
@@ -15,13 +15,6 @@ jobs:
|
||||
env:
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
||||
outputs:
|
||||
module-matrix: ${{ steps.set-module-matrix.outputs.matrix }}
|
||||
module-chunks: ${{ steps.set-module-chunks.outputs.chunks }}
|
||||
http-matrix: ${{ steps.set-http-matrix.outputs.matrix }}
|
||||
http-chunks: ${{ steps.set-http-chunks.outputs.chunks }}
|
||||
unit-tests-matrix: ${{ steps.set-unit-tests-matrix.outputs.matrix }}
|
||||
unit-tests-chunks: ${{ steps.set-unit-tests-chunks.outputs.chunks }}
|
||||
steps:
|
||||
- name: Cancel Previous Runs
|
||||
uses: styfle/cancel-workflow-action@0.11.0
|
||||
@@ -34,7 +27,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "yarn"
|
||||
@@ -47,46 +40,11 @@ jobs:
|
||||
with:
|
||||
extension: pipeline
|
||||
|
||||
- id: set-module-chunks
|
||||
name: Set Module Chunks
|
||||
working-directory: integration-tests/modules
|
||||
run: echo "chunks=$(yarn run jest --listTests --json | jq -cM '[_nwise(length / 2 | ceil)]')" >> $GITHUB_OUTPUT
|
||||
|
||||
- id: set-module-matrix
|
||||
name: Set Module Matrix
|
||||
run: echo "matrix=$(echo $CHUNKS | jq -cM 'to_entries | map(.key)')" >> $GITHUB_OUTPUT
|
||||
env:
|
||||
CHUNKS: ${{ steps.set-module-chunks.outputs.chunks }}
|
||||
|
||||
- id: set-http-chunks
|
||||
name: Set HTTP Chunks
|
||||
working-directory: integration-tests/http
|
||||
run: echo "chunks=$(yarn run jest --listTests --json | jq -cM '[_nwise(length / 2 | ceil)]')" >> $GITHUB_OUTPUT
|
||||
|
||||
- id: set-http-matrix
|
||||
name: Set HTTP Matrix
|
||||
run: echo "matrix=$(echo $CHUNKS | jq -cM 'to_entries | map(.key)')" >> $GITHUB_OUTPUT
|
||||
env:
|
||||
CHUNKS: ${{ steps.set-http-chunks.outputs.chunks }}
|
||||
|
||||
- id: set-unit-tests-chunks
|
||||
name: Set Unit Tests Chunks
|
||||
run: echo "chunks=$(yarn workspaces list --json | jq -j '[inputs | .name]' | jq -r | jq -cM '[_nwise(length / 2 | ceil)]')" >> $GITHUB_OUTPUT
|
||||
|
||||
- id: set-unit-tests-matrix
|
||||
name: Set Unit Tests Matrix
|
||||
run: echo "matrix=$(echo $CHUNKS | jq -cM 'to_entries | map(.key)')" >> $GITHUB_OUTPUT
|
||||
env:
|
||||
CHUNKS: ${{ steps.set-unit-tests-chunks.outputs.chunks }}
|
||||
|
||||
unit-tests-matrix:
|
||||
unit-tests:
|
||||
needs: setup
|
||||
runs-on: ubuntu-latest
|
||||
name: Shard (${{ matrix.chunk }}) Unit Tests
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
chunk: ${{ fromJSON(needs.setup.outputs.unit-tests-matrix) }}
|
||||
fail-fast: true
|
||||
env:
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
||||
@@ -106,13 +64,15 @@ jobs:
|
||||
|
||||
- name: Run unit tests
|
||||
run: yarn test:chunk
|
||||
env:
|
||||
CHUNK: ${{ matrix.chunk }}
|
||||
CHUNKS: ${{ needs.setup.outputs.unit-tests-chunks }}
|
||||
|
||||
integration-tests-packages:
|
||||
integration-tests-packages-matrix:
|
||||
needs: setup
|
||||
name: Packages integration tests (${{ matrix.group }})
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
group: ["slow", "fast"]
|
||||
env:
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
||||
@@ -152,102 +112,100 @@ jobs:
|
||||
extension: pipeline
|
||||
|
||||
- name: Run integration tests
|
||||
run: yarn test:integration:packages
|
||||
run: yarn test:integration:packages:${{ matrix.group }}
|
||||
env:
|
||||
DB_PASSWORD: postgres
|
||||
DB_USERNAME: postgres
|
||||
|
||||
integration-tests-http-matrix:
|
||||
needs: setup
|
||||
name: Shard (${{ matrix.chunk }}) HTTP Integration Tests
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
chunk: ${{ fromJSON(needs.setup.outputs.http-matrix) }}
|
||||
env:
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
||||
|
||||
services:
|
||||
redis:
|
||||
image: redis
|
||||
options: >-
|
||||
--health-cmd "redis-cli ping"
|
||||
--health-interval 1s
|
||||
--health-timeout 10s
|
||||
--health-retries 10
|
||||
ports:
|
||||
- 6379:6379
|
||||
postgres:
|
||||
image: postgres
|
||||
env:
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_USER: postgres
|
||||
options: >-
|
||||
--health-cmd pg_isready
|
||||
--health-interval 1s
|
||||
--health-timeout 10s
|
||||
--health-retries 10
|
||||
ports:
|
||||
- 5432:5432
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install dependencies
|
||||
uses: ./.github/actions/cache-deps
|
||||
with:
|
||||
extension: pipeline
|
||||
|
||||
- name: Run HTTP integration tests
|
||||
run: yarn test:integration:http
|
||||
env:
|
||||
DB_USERNAME: postgres
|
||||
DB_PASSWORD: postgres
|
||||
NODE_OPTIONS: "--max_old_space_size=4096"
|
||||
CHUNK: ${{ matrix.chunk }}
|
||||
CHUNKS: ${{ needs.setup.outputs.http-chunks }}
|
||||
|
||||
integration-tests-http:
|
||||
if: ${{ always() }}
|
||||
runs-on: ubuntu-latest
|
||||
needs: integration-tests-http-matrix
|
||||
steps:
|
||||
- run: exit 1
|
||||
if: >-
|
||||
${{
|
||||
contains(needs.integration-tests-http-matrix.result, 'failure')
|
||||
|| contains(needs.integration-tests-http-matrix.result, 'cancelled')
|
||||
|| contains(needs.integration-tests-http-matrix.result, 'skipped')
|
||||
}}
|
||||
- run: exit 0
|
||||
if: ${{ contains(needs.integration-tests-http-matrix.result, 'success') }}
|
||||
|
||||
unit-tests:
|
||||
integration-tests-packages:
|
||||
if: ${{ always() }}
|
||||
runs-on: ubuntu-latest
|
||||
needs: unit-tests-matrix
|
||||
needs: integration-tests-packages-matrix
|
||||
steps:
|
||||
- run: exit 1
|
||||
if: >-
|
||||
${{
|
||||
contains(needs.unit-tests-matrix.result, 'failure')
|
||||
|| contains(needs.unit-tests-matrix.result, 'cancelled')
|
||||
|| contains(needs.unit-tests-matrix.result, 'skipped')
|
||||
contains(needs.integration-tests-packages-matrix.result, 'failure')
|
||||
|| contains(needs.integration-tests-packages-matrix.result, 'cancelled')
|
||||
|| contains(needs.integration-tests-packages-matrix.result, 'skipped')
|
||||
}}
|
||||
- run: exit 0
|
||||
if: ${{ contains(needs.unit-tests-matrix.result, 'success') }}
|
||||
if: ${{ contains(needs.integration-tests-packages-matrix.result, 'success') }}
|
||||
|
||||
integration-tests-http-matrix:
|
||||
needs: setup
|
||||
name: HTTP Integration Tests - Shard ${{ matrix.shard_index }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
shard_index: [1, 2, 3]
|
||||
env:
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
||||
|
||||
services:
|
||||
redis:
|
||||
image: redis
|
||||
options: >-
|
||||
--health-cmd "redis-cli ping"
|
||||
--health-interval 1s
|
||||
--health-timeout 10s
|
||||
--health-retries 10
|
||||
ports:
|
||||
- 6379:6379
|
||||
postgres:
|
||||
image: postgres
|
||||
env:
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_USER: postgres
|
||||
options: >-
|
||||
--health-cmd pg_isready
|
||||
--health-interval 1s
|
||||
--health-timeout 10s
|
||||
--health-retries 10
|
||||
ports:
|
||||
- 5432:5432
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install dependencies
|
||||
uses: ./.github/actions/cache-deps
|
||||
with:
|
||||
extension: pipeline
|
||||
|
||||
- name: Run HTTP integration tests
|
||||
run: yarn test:integration:http -- --shard=${{ matrix.shard_index }}/3
|
||||
env:
|
||||
DB_USERNAME: postgres
|
||||
DB_PASSWORD: postgres
|
||||
NODE_OPTIONS: "--max_old_space_size=4096"
|
||||
|
||||
integration-tests-http:
|
||||
if: ${{ always() }}
|
||||
runs-on: ubuntu-latest
|
||||
needs: integration-tests-http-matrix
|
||||
steps:
|
||||
- run: exit 1
|
||||
if: >-
|
||||
${{
|
||||
contains(needs.integration-tests-http-matrix.result, 'failure')
|
||||
|| contains(needs.integration-tests-http-matrix.result, 'cancelled')
|
||||
|| contains(needs.integration-tests-http-matrix.result, 'skipped')
|
||||
}}
|
||||
- run: exit 0
|
||||
if: ${{ contains(needs.integration-tests-http-matrix.result, 'success') }}
|
||||
|
||||
integration-tests-modules-matrix:
|
||||
needs: setup
|
||||
name: Shard (${{ matrix.chunk }}) Module Integration Tests
|
||||
name: Module Integration Tests - Shard ${{ matrix.shard_index }}
|
||||
strategy:
|
||||
matrix:
|
||||
chunk: ${{ fromJSON(needs.setup.outputs.module-matrix) }}
|
||||
shard_index: [1, 2]
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
@@ -279,7 +237,7 @@ jobs:
|
||||
extension: pipeline
|
||||
|
||||
- name: Run Modules integration tests
|
||||
run: yarn test:integration:modules
|
||||
run: yarn test:integration:modules -- --shard=${{ matrix.shard_index }}/3
|
||||
env:
|
||||
DB_USERNAME: postgres
|
||||
DB_PASSWORD: postgres
|
||||
|
||||
15
.github/workflows/admin-i18n-validation.yml
vendored
15
.github/workflows/admin-i18n-validation.yml
vendored
@@ -5,7 +5,6 @@ on:
|
||||
paths:
|
||||
- packages/admin/dashboard/src/i18n/translations/**
|
||||
|
||||
|
||||
jobs:
|
||||
i18n-validation-admin-dashboard:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -17,10 +16,10 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '20'
|
||||
cache: 'yarn'
|
||||
node-version: "20"
|
||||
cache: "yarn"
|
||||
|
||||
- name: Install dependencies
|
||||
working-directory: packages/admin/dashboard
|
||||
@@ -30,18 +29,18 @@ jobs:
|
||||
working-directory: packages/admin/dashboard
|
||||
run: |
|
||||
git diff --name-only --diff-filter=A origin/develop HEAD -- src/i18n/translations > i18n_added_files.txt
|
||||
|
||||
|
||||
cat i18n_added_files.txt
|
||||
|
||||
|
||||
while read -r file; do
|
||||
# Get the base name of the file
|
||||
filename=$(basename "$file")
|
||||
|
||||
|
||||
# Skip those items
|
||||
if [ "$filename" = "\$schema.json" ] || [ "$filename" = "index.ts" ] || [ -d "$file" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
|
||||
# Run validation on the file
|
||||
yarn i18n:validate "$filename"
|
||||
done < i18n_added_files.txt
|
||||
|
||||
2
.github/workflows/codegen-test.yml
vendored
2
.github/workflows/codegen-test.yml
vendored
@@ -23,7 +23,7 @@
|
||||
# fetch-depth: 0
|
||||
#
|
||||
# - name: Setup Node.js environment
|
||||
# uses: actions/setup-node@v3
|
||||
# uses: actions/setup-node@v4
|
||||
# with:
|
||||
# node-version: "16.10.0"
|
||||
# cache: "yarn"
|
||||
|
||||
2
.github/workflows/docs-freshness-check.yml
vendored
2
.github/workflows/docs-freshness-check.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "yarn"
|
||||
|
||||
2
.github/workflows/docs-test.yml
vendored
2
.github/workflows/docs-test.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "yarn"
|
||||
|
||||
4
.github/workflows/docs-update-version.yml
vendored
4
.github/workflows/docs-update-version.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "yarn"
|
||||
@@ -51,4 +51,4 @@ jobs:
|
||||
labels: "type: chore"
|
||||
add-paths: www/packages/docs-ui/src/global-config.ts
|
||||
branch: "docs/update-config-version"
|
||||
branch-suffix: "timestamp"
|
||||
branch-suffix: "timestamp"
|
||||
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "yarn"
|
||||
@@ -114,7 +114,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "yarn"
|
||||
@@ -187,7 +187,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "yarn"
|
||||
@@ -242,7 +242,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "yarn"
|
||||
|
||||
65
.github/workflows/oas-test.yml
vendored
65
.github/workflows/oas-test.yml
vendored
@@ -1,41 +1,42 @@
|
||||
name: OAS Comments Format Validation
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- www/utils/generated/oas-output/**
|
||||
pull_request:
|
||||
paths:
|
||||
- www/utils/generated/oas-output/**
|
||||
|
||||
jobs:
|
||||
docs-test:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
||||
steps:
|
||||
- name: Cancel Previous Runs
|
||||
uses: styfle/cancel-workflow-action@0.11.0
|
||||
with:
|
||||
access_token: ${{ github.token }}
|
||||
docs-test:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
||||
steps:
|
||||
- name: Cancel Previous Runs
|
||||
uses: styfle/cancel-workflow-action@0.11.0
|
||||
with:
|
||||
access_token: ${{ github.token }}
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: "16.10.0"
|
||||
cache: "yarn"
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "16.10.0"
|
||||
cache: "yarn"
|
||||
|
||||
- name: Install dependencies
|
||||
uses: ./.github/actions/cache-deps
|
||||
with:
|
||||
extension: oas
|
||||
- name: Install dependencies
|
||||
uses: ./.github/actions/cache-deps
|
||||
with:
|
||||
extension: oas
|
||||
|
||||
- name: Build Packages
|
||||
run: yarn build
|
||||
- name: Build Packages
|
||||
run: yarn build
|
||||
|
||||
- name: Build OAS
|
||||
run: |
|
||||
yarn openapi:generate --dry-run
|
||||
#
|
||||
- name: Build OAS
|
||||
run: |
|
||||
yarn openapi:generate --dry-run
|
||||
|
||||
#
|
||||
|
||||
2
.github/workflows/release-notifications.yml
vendored
2
.github/workflows/release-notifications.yml
vendored
@@ -18,7 +18,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "yarn"
|
||||
|
||||
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Node.js 20
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
|
||||
2
.github/workflows/snapshot-this.yml
vendored
2
.github/workflows/snapshot-this.yml
vendored
@@ -77,7 +77,7 @@ jobs:
|
||||
git checkout origin/main -- .changeset
|
||||
fi
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "yarn"
|
||||
|
||||
26
.github/workflows/test-cli-with-database.yml
vendored
26
.github/workflows/test-cli-with-database.yml
vendored
@@ -6,6 +6,8 @@ jobs:
|
||||
test-cli-with-database:
|
||||
env:
|
||||
NODE_ENV: CI
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
||||
REDIS_URL: redis://localhost:6379
|
||||
DATABASE_URL: "postgres://postgres:postgres@localhost/cli-test"
|
||||
services:
|
||||
@@ -40,22 +42,32 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup development server
|
||||
uses: ./.github/actions/setup-server
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
cache-extension: "cli-test"
|
||||
node-version: 20
|
||||
cache: "yarn"
|
||||
|
||||
- name: Install dependencies
|
||||
uses: ./.github/actions/cache-deps
|
||||
with:
|
||||
extension: cli-database
|
||||
|
||||
- name: Install Medusa cli
|
||||
run: npm i -g @medusajs/cli@latest
|
||||
|
||||
- name: Create Medusa project
|
||||
run: |
|
||||
medusa new cli-test --skip-db --v2 --branch ci
|
||||
working-directory: ..
|
||||
run: |
|
||||
medusa new cli-test --skip-db --v2 --branch ci-custom
|
||||
|
||||
- name: run medusa dev
|
||||
run: medusa-dev --force-install
|
||||
- name: Enable Corepack
|
||||
run: corepack enable
|
||||
|
||||
- name: Install new app dependencies (via resolutions)
|
||||
run: rm package-lock.json && yarn install --no-immutable
|
||||
env:
|
||||
YARN_ENABLE_IMMUTABLE_INSTALLS: false
|
||||
working-directory: ../cli-test
|
||||
|
||||
- name: Run migrations
|
||||
|
||||
2
.github/workflows/trigger-release.yml
vendored
2
.github/workflows/trigger-release.yml
vendored
@@ -35,7 +35,7 @@ jobs:
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Node.js 20
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
|
||||
Reference in New Issue
Block a user