feat: Add support for price setting and updates for products (#7037) #21
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: Medusa Pipeline | |
on: | |
push: | |
branches: | |
- develop | |
pull_request: | |
branches: | |
- develop | |
jobs: | |
setup: | |
runs-on: ubuntu-latest | |
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 }} | |
api-matrix: ${{ steps.set-api-matrix.outputs.matrix }} | |
api-chunks: ${{ steps.set-api-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/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- 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: Assert changed | |
run: ./scripts/assert-changed-files-actions.sh "packages" | |
- name: Install dependencies | |
uses: ./.github/actions/cache-deps | |
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-api-chunks | |
name: Set API Chunks | |
working-directory: integration-tests/api | |
run: echo "chunks=$(yarn run jest --listTests --json | jq -cM '[_nwise(length / 2 | ceil)]')" >> $GITHUB_OUTPUT | |
- id: set-api-matrix | |
name: Set API Matrix | |
run: echo "matrix=$(echo $CHUNKS | jq -cM 'to_entries | map(.key)')" >> $GITHUB_OUTPUT | |
env: | |
CHUNKS: ${{ steps.set-api-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: | |
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) }} | |
env: | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_TEAM: ${{ secrets.TURBO_TEAM }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Assert changed | |
run: ./scripts/assert-changed-files-actions.sh "packages" | |
- name: Install dependencies | |
uses: ./.github/actions/cache-deps | |
with: | |
extension: pipeline | |
- name: Run unit tests | |
run: yarn test:chunk | |
env: | |
CHUNK: ${{ matrix.chunk }} | |
CHUNKS: ${{ needs.setup.outputs.unit-tests-chunks }} | |
integration-tests-packages: | |
needs: setup | |
runs-on: ubuntu-latest | |
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 integration tests | |
run: yarn test:integration:packages | |
env: | |
DB_PASSWORD: postgres | |
DB_USERNAME: postgres | |
integration-tests-api-matrix: | |
needs: setup | |
name: Shard (${{ matrix.chunk }}) API Integration Tests | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
chunk: ${{ fromJSON(needs.setup.outputs.api-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 API integration tests | |
run: yarn test:integration:api | |
env: | |
DB_USERNAME: postgres | |
DB_PASSWORD: postgres | |
NODE_OPTIONS: "--max_old_space_size=4096" | |
CHUNK: ${{ matrix.chunk }} | |
CHUNKS: ${{ needs.setup.outputs.api-chunks }} | |
integration-tests-api: | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
needs: integration-tests-api-matrix | |
steps: | |
- run: exit 1 | |
if: >- | |
${{ | |
contains(needs.integration-tests-api-matrix.result, 'failure') | |
|| contains(needs.integration-tests-api-matrix.result, 'cancelled') | |
|| contains(needs.integration-tests-api-matrix.result, 'skipped') | |
}} | |
- run: exit 0 | |
if: ${{ contains(needs.integration-tests-api-matrix.result, 'success') }} | |
unit-tests: | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
needs: unit-tests-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') | |
}} | |
- run: exit 0 | |
if: ${{ contains(needs.unit-tests-matrix.result, 'success') }} | |
integration-tests-plugins: | |
needs: setup | |
runs-on: ubuntu-latest | |
env: | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_TEAM: ${{ secrets.TURBO_TEAM }} | |
services: | |
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: Setup Node.js environment | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "16.10.0" | |
cache: "yarn" | |
- name: Install dependencies | |
uses: ./.github/actions/cache-deps | |
with: | |
extension: pipeline | |
- name: Run plugin integration tests | |
run: yarn test:integration:plugins | |
env: | |
DB_USERNAME: postgres | |
DB_PASSWORD: postgres | |
NODE_OPTIONS: "--max_old_space_size=4096" | |
integration-tests-modules-matrix: | |
needs: setup | |
name: Shard (${{ matrix.chunk }}) Module Integration Tests | |
strategy: | |
matrix: | |
chunk: ${{ fromJSON(needs.setup.outputs.module-matrix) }} | |
runs-on: ubuntu-latest | |
env: | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_TEAM: ${{ secrets.TURBO_TEAM }} | |
services: | |
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 Modules integration tests | |
run: yarn test:integration:modules | |
env: | |
DB_USERNAME: postgres | |
DB_PASSWORD: postgres | |
NODE_OPTIONS: "--max_old_space_size=4096" | |
CHUNK: ${{ matrix.chunk }} | |
CHUNKS: ${{ needs.setup.outputs.module-chunks }} | |
integration-tests-modules: | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
needs: integration-tests-modules-matrix | |
steps: | |
- run: exit 1 | |
if: >- | |
${{ | |
contains(needs.integration-tests-modules-matrix.result, 'failure') | |
|| contains(needs.integration-tests-modules-matrix.result, 'cancelled') | |
|| contains(needs.integration-tests-modules-matrix.result, 'skipped') | |
}} | |
- run: exit 0 | |
if: ${{ contains(needs.integration-tests-modules-matrix.result, 'success') }} | |
integration-tests-repositories: | |
needs: setup | |
runs-on: ubuntu-latest | |
env: | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_TEAM: ${{ secrets.TURBO_TEAM }} | |
services: | |
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 repository integration tests | |
run: yarn test:integration:repositories | |
env: | |
DB_USERNAME: postgres | |
DB_PASSWORD: postgres |