Ver Fonte

chore: Consolidate duplicated workflow files

Michael Bromley há 6 meses atrás
pai
commit
fe60cda288

+ 148 - 0
.github/workflows/build_and_test.yml

@@ -0,0 +1,148 @@
+name: Build & Test
+on:
+  push:
+    branches:
+      - master
+      - minor
+      - major
+    paths:
+      - 'packages/**'
+      - 'package.json'
+      - 'package-lock.json'
+  pull_request:
+    branches:
+        - master
+        - major
+        - minor
+    paths:
+        - 'packages/**'
+        - 'package.json'
+        - 'package-lock.json'
+
+env:
+  CI: true
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+  cancel-in-progress: true
+
+jobs:
+  codegen:
+    uses: ./.github/workflows/codegen.yml
+  build:
+    name: build
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        node: [ 20.x, 22.x ]
+    steps:
+      - uses: actions/checkout@v4
+      - name: Use Node.js ${{ matrix.node }}
+        uses: actions/setup-node@v4
+        with:
+          node-version: ${{ matrix.node }}
+      - name: npm install
+        run: |
+          npm install
+          npm install --os=linux --cpu=x64 sharp
+      - name: Build
+        run: npm run build
+  unit-tests:
+    name: unit tests
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        node: [ 20.x, 22.x ]
+    steps:
+      - uses: actions/checkout@v4
+      - name: Use Node.js ${{ matrix.node }}
+        uses: actions/setup-node@v4
+        with:
+          node-version: ${{ matrix.node }}
+      - name: npm install
+        run: |
+          npm install
+          npm install --os=linux --cpu=x64 sharp
+      - name: Build
+        run: npx lerna run ci
+      - name: Unit tests
+        run: npm run test
+  e2e-tests:
+    name: e2e tests
+    runs-on: ubuntu-latest
+    services:
+      mariadb:
+        # With v11.6.2+, a default was changed, (https://mariadb.com/kb/en/innodb-system-variables/#innodb_snapshot_isolation)
+        # which causes e2e test failures currently
+        image: bitnami/mariadb:11.5
+        env:
+          MARIADB_ROOT_USER: vendure
+          MARIADB_ROOT_PASSWORD: password
+        ports:
+          - 3306
+        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
+      mysql:
+        image: bitnami/mysql:8.0
+        env:
+          MYSQL_AUTHENTICATION_PLUGIN: mysql_native_password
+          MYSQL_ROOT_USER: vendure
+          MYSQL_ROOT_PASSWORD: password
+        ports:
+          - 3306
+        options: --health-cmd="mysqladmin ping --silent" --health-interval=10s --health-timeout=20s --health-retries=10
+      postgres:
+        image: postgres:16
+        env:
+          POSTGRES_USER: vendure
+          POSTGRES_PASSWORD: password
+        ports:
+          - 5432
+        options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3
+      elastic:
+        image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1
+        env:
+          discovery.type: single-node
+          bootstrap.memory_lock: true
+          ES_JAVA_OPTS: -Xms512m -Xmx512m
+          # Elasticsearch will force read-only mode when total available disk space is less than 5%. Since we will
+          # be running on a shared Azure instance with 84GB SSD, we easily go below 5% available even when there are still
+          # > 3GB free. So we set this value to an absolute one rather than a percentage to prevent all the Elasticsearch
+          # e2e tests from failing.
+          cluster.routing.allocation.disk.watermark.low: 500mb
+          cluster.routing.allocation.disk.watermark.high: 200mb
+          cluster.routing.allocation.disk.watermark.flood_stage: 100mb
+        ports:
+          - 9200
+        options: --health-cmd="curl --silent --fail localhost:9200/_cluster/health" --health-interval=10s --health-timeout=5s --health-retries=3
+      redis:
+        image: bitnami/redis:7.4.1
+        env:
+          ALLOW_EMPTY_PASSWORD: yes
+        ports:
+          - 6379
+    strategy:
+      fail-fast: false
+      matrix:
+        node: [ 20.x, 22.x ]
+        db: [ sqljs, mariadb, mysql, postgres ]
+    steps:
+      - uses: actions/checkout@v4
+      - name: Use Node.js ${{ matrix.node }}
+        uses: actions/setup-node@v4
+        with:
+          node-version: ${{ matrix.node }}
+      - name: npm install
+        run: |
+          npm install
+          npm install --os=linux --cpu=x64 sharp
+      - name: Build
+        run: npx lerna run ci
+      - name: e2e tests
+        env:
+          E2E_MYSQL_PORT: ${{ job.services.mysql.ports['3306'] }}
+          E2E_MARIADB_PORT: ${{ job.services.mariadb.ports['3306'] }}
+          E2E_POSTGRES_PORT: ${{ job.services.postgres.ports['5432'] }}
+          E2E_ELASTIC_PORT: ${{ job.services.elastic.ports['9200'] }}
+          E2E_REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
+          DB: ${{ matrix.db }}
+        run: npm run e2e

+ 0 - 137
.github/workflows/build_and_test_branches.yml

@@ -1,137 +0,0 @@
-name: Build & Test Branches
-on:
-    push:
-        branches:
-            - major
-            - minor
-            - parallel-e2e
-        paths:
-            - 'packages/**'
-            - 'package.json'
-            - 'package-lock.json'
-
-env:
-    CI: true
-
-concurrency:
-    group: ${{ github.workflow }}-${{ github.ref }}
-    cancel-in-progress: true
-
-jobs:
-    codegen:
-        uses: ./.github/workflows/codegen.yml
-    build:
-        name: build
-        runs-on: ubuntu-latest
-        strategy:
-            matrix:
-                node: [20.x, 22.x]
-        steps:
-            - uses: actions/checkout@v4
-            - name: Use Node.js ${{ matrix.node }}
-              uses: actions/setup-node@v4
-              with:
-                  node-version: ${{ matrix.node }}
-            - name: npm install
-              run: |
-                  npm install
-                  npm install --os=linux --cpu=x64 sharp
-            - name: Build
-              run: npm run build
-    unit-tests:
-        name: unit tests
-        runs-on: ubuntu-latest
-        strategy:
-            matrix:
-                node: [20.x, 22.x]
-        steps:
-            - uses: actions/checkout@v4
-            - name: Use Node.js ${{ matrix.node }}
-              uses: actions/setup-node@v4
-              with:
-                  node-version: ${{ matrix.node }}
-            - name: npm install
-              run: |
-                  npm install
-                  npm install --os=linux --cpu=x64 sharp
-            - name: Build
-              run: npx lerna run ci
-            - name: Unit tests
-              run: npm run test
-    e2e-tests:
-        name: e2e tests
-        runs-on: ubuntu-latest
-        services:
-            mariadb:
-                image: bitnami/mariadb:11.5
-                env:
-                    MARIADB_ROOT_USER: vendure
-                    MARIADB_ROOT_PASSWORD: password
-                ports:
-                    - 3306
-                options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
-            mysql:
-                image: bitnami/mysql:8.0
-                env:
-                    MYSQL_AUTHENTICATION_PLUGIN: mysql_native_password
-                    MYSQL_ROOT_USER: vendure
-                    MYSQL_ROOT_PASSWORD: password
-                ports:
-                    - 3306
-                options: --health-cmd="mysqladmin ping --silent" --health-interval=10s --health-timeout=20s --health-retries=10
-            postgres:
-                image: postgres:16
-                env:
-                    POSTGRES_USER: vendure
-                    POSTGRES_PASSWORD: password
-                ports:
-                    - 5432
-                options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3
-            elastic:
-                image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1
-                env:
-                    discovery.type: single-node
-                    bootstrap.memory_lock: true
-                    ES_JAVA_OPTS: -Xms512m -Xmx512m
-                    # Elasticsearch will force read-only mode when total available disk space is less than 5%. Since we will
-                    # be running on a shared Azure instance with 84GB SSD, we easily go below 5% available even when there are still
-                    # > 3GB free. So we set this value to an absolute one rather than a percentage to prevent all the Elasticsearch
-                    # e2e tests from failing.
-                    cluster.routing.allocation.disk.watermark.low: 500mb
-                    cluster.routing.allocation.disk.watermark.high: 200mb
-                    cluster.routing.allocation.disk.watermark.flood_stage: 100mb
-                ports:
-                    - 9200
-                options: --health-cmd="curl --silent --fail localhost:9200/_cluster/health" --health-interval=10s --health-timeout=5s --health-retries=3
-            redis:
-                image: bitnami/redis:7.4.1
-                env:
-                    ALLOW_EMPTY_PASSWORD: yes
-                ports:
-                    - 6379
-        strategy:
-            fail-fast: false
-            matrix:
-                node: [20.x, 22.x]
-                db: [sqljs, mariadb, mysql, postgres]
-        steps:
-            - uses: actions/checkout@v4
-            - name: Use Node.js ${{ matrix.node }}
-              uses: actions/setup-node@v4
-              with:
-                  node-version: ${{ matrix.node }}
-            - name: npm install
-              run: |
-                  npm install
-                  npm install --os=linux --cpu=x64 sharp
-            - name: Build
-              run: npx lerna run ci
-            - name: e2e tests
-              env:
-                  E2E_MYSQL_PORT: ${{ job.services.mysql.ports['3306'] }}
-                  E2E_MARIADB_PORT: ${{ job.services.mariadb.ports['3306'] }}
-                  E2E_POSTGRES_PORT: ${{ job.services.postgres.ports['5432'] }}
-                  E2E_ELASTIC_PORT: ${{ job.services.elastic.ports['9200'] }}
-                  E2E_REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
-                  DB: ${{ matrix.db }}
-              run: npm run e2e

+ 0 - 137
.github/workflows/build_and_test_master.yml

@@ -1,137 +0,0 @@
-name: Build & Test
-on:
-    push:
-        branches:
-            - master
-        paths:
-            - 'packages/**'
-            - 'package.json'
-            - 'package-lock.json'
-
-env:
-    CI: true
-
-concurrency:
-    group: ${{ github.workflow }}-${{ github.ref }}
-    cancel-in-progress: true
-
-jobs:
-    codegen:
-        uses: ./.github/workflows/codegen.yml
-    build:
-        name: build
-        runs-on: ubuntu-latest
-        strategy:
-            matrix:
-                node: [20.x, 22.x]
-        steps:
-            - uses: actions/checkout@v4
-            - name: Use Node.js ${{ matrix.node }}
-              uses: actions/setup-node@v4
-              with:
-                  node-version: ${{ matrix.node }}
-            - name: npm install
-              run: |
-                  npm install
-                  npm install --os=linux --cpu=x64 sharp
-            - name: Build
-              run: npm run build
-    unit-tests:
-        name: unit tests
-        runs-on: ubuntu-latest
-        strategy:
-            matrix:
-                node: [20.x, 22.x]
-        steps:
-            - uses: actions/checkout@v4
-            - name: Use Node.js ${{ matrix.node }}
-              uses: actions/setup-node@v4
-              with:
-                  node-version: ${{ matrix.node }}
-            - name: npm install
-              run: |
-                  npm install
-                  npm install --os=linux --cpu=x64 sharp
-            - name: Build
-              run: npx lerna run ci
-            - name: Unit tests
-              run: npm run test
-    e2e-tests:
-        name: e2e tests
-        runs-on: ubuntu-latest
-        services:
-            mariadb:
-                # With v11.6.2+, a default was changed, (https://mariadb.com/kb/en/innodb-system-variables/#innodb_snapshot_isolation)
-                # which causes e2e test failures currently
-                image: bitnami/mariadb:11.5
-                env:
-                    MARIADB_ROOT_USER: vendure
-                    MARIADB_ROOT_PASSWORD: password
-                ports:
-                    - 3306
-                options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
-            mysql:
-                image: bitnami/mysql:8.0
-                env:
-                    MYSQL_AUTHENTICATION_PLUGIN: mysql_native_password
-                    MYSQL_ROOT_USER: vendure
-                    MYSQL_ROOT_PASSWORD: password
-                ports:
-                    - 3306
-                options: --health-cmd="mysqladmin ping --silent" --health-interval=10s --health-timeout=20s --health-retries=10
-            postgres:
-                image: postgres:16
-                env:
-                    POSTGRES_USER: vendure
-                    POSTGRES_PASSWORD: password
-                ports:
-                    - 5432
-                options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3
-            elastic:
-                image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1
-                env:
-                    discovery.type: single-node
-                    bootstrap.memory_lock: true
-                    ES_JAVA_OPTS: -Xms512m -Xmx512m
-                    # Elasticsearch will force read-only mode when total available disk space is less than 5%. Since we will
-                    # be running on a shared Azure instance with 84GB SSD, we easily go below 5% available even when there are still
-                    # > 3GB free. So we set this value to an absolute one rather than a percentage to prevent all the Elasticsearch
-                    # e2e tests from failing.
-                    cluster.routing.allocation.disk.watermark.low: 500mb
-                    cluster.routing.allocation.disk.watermark.high: 200mb
-                    cluster.routing.allocation.disk.watermark.flood_stage: 100mb
-                ports:
-                    - 9200
-                options: --health-cmd="curl --silent --fail localhost:9200/_cluster/health" --health-interval=10s --health-timeout=5s --health-retries=3
-            redis:
-                image: bitnami/redis:7.4.1
-                env:
-                    ALLOW_EMPTY_PASSWORD: yes
-                ports:
-                    - 6379
-        strategy:
-            fail-fast: false
-            matrix:
-                node: [20.x, 22.x]
-                db: [sqljs, mariadb, mysql, postgres]
-        steps:
-            - uses: actions/checkout@v4
-            - name: Use Node.js ${{ matrix.node }}
-              uses: actions/setup-node@v4
-              with:
-                  node-version: ${{ matrix.node }}
-            - name: npm install
-              run: |
-                  npm install
-                  npm install --os=linux --cpu=x64 sharp
-            - name: Build
-              run: npx lerna run ci
-            - name: e2e tests
-              env:
-                  E2E_MYSQL_PORT: ${{ job.services.mysql.ports['3306'] }}
-                  E2E_MARIADB_PORT: ${{ job.services.mariadb.ports['3306'] }}
-                  E2E_POSTGRES_PORT: ${{ job.services.postgres.ports['5432'] }}
-                  E2E_ELASTIC_PORT: ${{ job.services.elastic.ports['9200'] }}
-                  E2E_REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
-                  DB: ${{ matrix.db }}
-              run: npm run e2e

+ 0 - 137
.github/workflows/build_and_test_pr.yml

@@ -1,137 +0,0 @@
-name: Build & Test PR
-on:
-    pull_request:
-        branches:
-            - master
-            - major
-            - minor
-        paths:
-            - 'packages/**'
-            - 'package.json'
-            - 'package-lock.json'
-
-env:
-    CI: true
-
-concurrency:
-    group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
-    cancel-in-progress: true
-
-jobs:
-    codegen:
-        uses: ./.github/workflows/codegen.yml
-    build:
-        name: build
-        runs-on: ubuntu-latest
-        strategy:
-            matrix:
-                node: [20.x, 22.x]
-        steps:
-            - uses: actions/checkout@v4
-            - name: Use Node.js ${{ matrix.node }}
-              uses: actions/setup-node@v4
-              with:
-                  node-version: ${{ matrix.node }}
-            - name: npm install
-              run: |
-                  npm install
-                  npm install --os=linux --cpu=x64 sharp
-            - name: Build
-              run: npm run build
-    unit-tests:
-        name: unit tests
-        runs-on: ubuntu-latest
-        strategy:
-            matrix:
-                node: [20.x, 22.x]
-        steps:
-            - uses: actions/checkout@v4
-            - name: Use Node.js ${{ matrix.node }}
-              uses: actions/setup-node@v4
-              with:
-                  node-version: ${{ matrix.node }}
-            - name: npm install
-              run: |
-                  npm install
-                  npm install --os=linux --cpu=x64 sharp
-            - name: Build
-              run: npx lerna run ci
-            - name: Unit tests
-              run: npm run test
-    e2e-tests:
-        name: e2e tests
-        runs-on: ubuntu-latest
-        services:
-            mariadb:
-                image: bitnami/mariadb:11.5
-                env:
-                    MARIADB_ROOT_USER: vendure
-                    MARIADB_ROOT_PASSWORD: password
-                ports:
-                    - 3306
-                options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
-            mysql:
-                image: bitnami/mysql:8.0
-                env:
-                    MYSQL_AUTHENTICATION_PLUGIN: mysql_native_password
-                    MYSQL_ROOT_USER: vendure
-                    MYSQL_ROOT_PASSWORD: password
-                ports:
-                    - 3306
-                options: --health-cmd="mysqladmin ping --silent" --health-interval=10s --health-timeout=20s --health-retries=10
-            postgres:
-                image: postgres:16
-                env:
-                    POSTGRES_USER: vendure
-                    POSTGRES_PASSWORD: password
-                ports:
-                    - 5432
-                options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3
-            elastic:
-                image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1
-                env:
-                    discovery.type: single-node
-                    bootstrap.memory_lock: true
-                    ES_JAVA_OPTS: -Xms512m -Xmx512m
-                    # Elasticsearch will force read-only mode when total available disk space is less than 5%. Since we will
-                    # be running on a shared Azure instance with 84GB SSD, we easily go below 5% available even when there are still
-                    # > 3GB free. So we set this value to an absolute one rather than a percentage to prevent all the Elasticsearch
-                    # e2e tests from failing.
-                    cluster.routing.allocation.disk.watermark.low: 500mb
-                    cluster.routing.allocation.disk.watermark.high: 200mb
-                    cluster.routing.allocation.disk.watermark.flood_stage: 100mb
-                ports:
-                    - 9200
-                options: --health-cmd="curl --silent --fail localhost:9200/_cluster/health" --health-interval=10s --health-timeout=5s --health-retries=3
-            redis:
-                image: bitnami/redis:7.4.1
-                env:
-                    ALLOW_EMPTY_PASSWORD: yes
-                ports:
-                    - 6379
-        strategy:
-            fail-fast: false
-            matrix:
-                node: [20.x, 22.x]
-                db: [sqljs, mariadb, mysql, postgres]
-        steps:
-            - uses: actions/checkout@v4
-            - name: Use Node.js ${{ matrix.node }}
-              uses: actions/setup-node@v4
-              with:
-                  node-version: ${{ matrix.node }}
-            - name: npm install
-              run: |
-                  npm install
-                  npm install --os=linux --cpu=x64 sharp
-            - name: Build
-              run: npx lerna run ci
-            - name: e2e tests
-              env:
-                  E2E_MYSQL_PORT: ${{ job.services.mysql.ports['3306'] }}
-                  E2E_MARIADB_PORT: ${{ job.services.mariadb.ports['3306'] }}
-                  E2E_POSTGRES_PORT: ${{ job.services.postgres.ports['5432'] }}
-                  E2E_ELASTIC_PORT: ${{ job.services.elastic.ports['9200'] }}
-                  E2E_REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
-                  DB: ${{ matrix.db }}
-              run: npm run e2e

+ 85 - 0
.github/workflows/publish_and_install.yml

@@ -0,0 +1,85 @@
+name: Publish & Install
+on:
+  push:
+    branches:
+      - master
+      - minor
+      - major
+    paths:
+      - 'packages/**'
+      - 'package.json'
+      - 'package-lock.json'
+  pull_request:
+    branches:
+      - master
+      - major
+      - minor
+    paths:
+      - 'packages/**'
+      - 'package.json'
+      - 'package-lock.json'
+
+defaults:
+  run:
+    shell: bash
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+  cancel-in-progress: true
+
+jobs:
+  publish_install:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      matrix:
+        os: [ ubuntu-latest, windows-latest, macos-latest ]
+        node-version: [ 20.x, 22.x ]
+      fail-fast: false
+    steps:
+      - uses: actions/checkout@v4
+      - name: Use Node.js ${{ matrix.node-version }}
+        uses: actions/setup-node@v4
+        with:
+          node-version: ${{ matrix.node-version }}
+      - name: Install Verdaccio
+        run: |
+          npm install -g verdaccio
+          npm install -g wait-on
+          tmp_registry_log=`mktemp`
+          mkdir -p $HOME/.config/verdaccio
+          cp -v ./.github/workflows/verdaccio/config.yaml $HOME/.config/verdaccio/config.yaml
+          nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &
+          wait-on http://localhost:4873
+          TOKEN_RES=$(curl -XPUT \
+            -H "Content-type: application/json" \
+            -d '{ "name": "test", "password": "test" }' \
+            'http://localhost:4873/-/user/org.couchdb.user:test')
+          TOKEN=$(echo "$TOKEN_RES" | jq -r '.token')
+          npm set //localhost:4873/:_authToken $TOKEN
+      - name: Windows dependencies
+        if: matrix.os == 'windows-latest'
+        run: npm install -g @angular/cli
+      - name: npm install
+        run: |
+          npm install
+        env:
+          CI: true
+      - name: Publish to Verdaccio
+        run: |
+          nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &
+          wait-on http://localhost:4873
+          npx lerna publish prepatch --preid ci --no-push --no-git-tag-version --no-commit-hooks --force-publish "*" --yes --dist-tag ci --registry http://localhost:4873
+      - name: Install via @vendure/create
+        run: |
+          mkdir -p $HOME/install
+          cd $HOME/install
+          nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &
+          wait-on http://localhost:4873
+          npm set registry=http://localhost:4873
+          npm dist-tag ls @vendure/create
+          npx @vendure/create@ci test-app --ci --use-npm --log-level info
+      - name: Server smoke tests
+        run: |
+          cd $HOME/install/test-app
+          npm run dev &
+          node $GITHUB_WORKSPACE/.github/workflows/scripts/smoke-tests

+ 0 - 76
.github/workflows/publish_and_install_branches.yml

@@ -1,76 +0,0 @@
-name: Publish & Install Branches
-on:
-    push:
-        branches:
-            - major
-            - minor
-            - parallel-e2e
-        paths:
-            - 'packages/**'
-            - 'package.json'
-            - 'package-lock.json'
-            
-concurrency:
-    group: ${{ github.workflow }}-${{ github.ref }}
-    cancel-in-progress: true
-
-defaults:
-    run:
-        shell: bash
-
-jobs:
-    publish_install:
-        runs-on: ${{ matrix.os }}
-        strategy:
-            matrix:
-                os: [ubuntu-latest, windows-latest, macos-latest]
-                node-version: [20.x, 22.x]
-            fail-fast: false
-        steps:
-            - uses: actions/checkout@v4
-            - name: Use Node.js ${{ matrix.node-version }}
-              uses: actions/setup-node@v4
-              with:
-                  node-version: ${{ matrix.node-version }}
-            - name: Install Verdaccio
-              run: |
-                  npm install -g verdaccio
-                  npm install -g wait-on
-                  tmp_registry_log=`mktemp`
-                  mkdir -p $HOME/.config/verdaccio
-                  cp -v ./.github/workflows/verdaccio/config.yaml $HOME/.config/verdaccio/config.yaml
-                  nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &
-                  wait-on http://localhost:4873
-                  TOKEN_RES=$(curl -XPUT \
-                    -H "Content-type: application/json" \
-                    -d '{ "name": "test", "password": "test" }' \
-                    'http://localhost:4873/-/user/org.couchdb.user:test')
-                  TOKEN=$(echo "$TOKEN_RES" | jq -r '.token')
-                  npm set //localhost:4873/:_authToken $TOKEN
-            - name: Windows dependencies
-              if: matrix.os == 'windows-latest'
-              run: npm install -g @angular/cli
-            - name: npm install
-              run: |
-                  npm install
-              env:
-                  CI: true
-            - name: Publish to Verdaccio
-              run: |
-                  nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &
-                  wait-on http://localhost:4873
-                  npx lerna publish prepatch --preid ci --no-push --no-git-tag-version --no-commit-hooks --force-publish "*" --yes --dist-tag ci --registry http://localhost:4873
-            - name: Install via @vendure/create
-              run: |
-                  mkdir -p $HOME/install
-                  cd $HOME/install
-                  nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &
-                  wait-on http://localhost:4873
-                  npm set registry=http://localhost:4873
-                  npm dist-tag ls @vendure/create
-                  npx @vendure/create@ci test-app --ci --use-npm --log-level info
-            - name: Server smoke tests
-              run: |
-                  cd $HOME/install/test-app
-                  npm run dev &
-                  node $GITHUB_WORKSPACE/.github/workflows/scripts/smoke-tests

+ 0 - 74
.github/workflows/publish_and_install_master.yml

@@ -1,74 +0,0 @@
-name: Publish & Install
-on:
-    push:
-        branches:
-            - master
-        paths:
-            - 'packages/**'
-            - 'package.json'
-            - 'package-lock.json'
-
-defaults:
-    run:
-        shell: bash
-
-concurrency:
-    group: ${{ github.workflow }}-${{ github.ref }}
-    cancel-in-progress: true
-
-jobs:
-    publish_install:
-        runs-on: ${{ matrix.os }}
-        strategy:
-            matrix:
-                os: [ubuntu-latest, windows-latest, macos-latest]
-                node-version: [20.x, 22.x]
-            fail-fast: false
-        steps:
-            - uses: actions/checkout@v4
-            - name: Use Node.js ${{ matrix.node-version }}
-              uses: actions/setup-node@v4
-              with:
-                  node-version: ${{ matrix.node-version }}
-            - name: Install Verdaccio
-              run: |
-                  npm install -g verdaccio
-                  npm install -g wait-on
-                  tmp_registry_log=`mktemp`
-                  mkdir -p $HOME/.config/verdaccio
-                  cp -v ./.github/workflows/verdaccio/config.yaml $HOME/.config/verdaccio/config.yaml
-                  nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &
-                  wait-on http://localhost:4873
-                  TOKEN_RES=$(curl -XPUT \
-                    -H "Content-type: application/json" \
-                    -d '{ "name": "test", "password": "test" }' \
-                    'http://localhost:4873/-/user/org.couchdb.user:test')
-                  TOKEN=$(echo "$TOKEN_RES" | jq -r '.token')
-                  npm set //localhost:4873/:_authToken $TOKEN
-            - name: Windows dependencies
-              if: matrix.os == 'windows-latest'
-              run: npm install -g @angular/cli
-            - name: npm install
-              run: |
-                  npm install
-              env:
-                  CI: true
-            - name: Publish to Verdaccio
-              run: |
-                  nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &
-                  wait-on http://localhost:4873
-                  npx lerna publish prepatch --preid ci --no-push --no-git-tag-version --no-commit-hooks --force-publish "*" --yes --dist-tag ci --registry http://localhost:4873
-            - name: Install via @vendure/create
-              run: |
-                  mkdir -p $HOME/install
-                  cd $HOME/install
-                  nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &
-                  wait-on http://localhost:4873
-                  npm set registry=http://localhost:4873
-                  npm dist-tag ls @vendure/create
-                  npx @vendure/create@ci test-app --ci --use-npm --log-level info
-            - name: Server smoke tests
-              run: |
-                  cd $HOME/install/test-app
-                  npm run dev &
-                  node $GITHUB_WORKSPACE/.github/workflows/scripts/smoke-tests

+ 0 - 75
.github/workflows/publish_and_install_pr.yml

@@ -1,75 +0,0 @@
-name: Publish & Install PR
-on:
-    pull_request:
-        branches:
-            - master
-            - major
-            - minor
-        paths:
-            - 'packages/**'
-            - 'package.json'
-            - 'package-lock.json'
-
-concurrency:
-    group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
-    cancel-in-progress: true
-
-defaults:
-    run:
-        shell: bash
-jobs:
-    publish_install:
-        runs-on: ${{ matrix.os }}
-        strategy:
-            matrix:
-                os: [ubuntu-latest, windows-latest, macos-latest]
-                node-version: [20.x, 22.x]
-            fail-fast: false
-        steps:
-            - uses: actions/checkout@v4
-            - name: Use Node.js ${{ matrix.node-version }}
-              uses: actions/setup-node@v4
-              with:
-                  node-version: ${{ matrix.node-version }}
-            - name: Install Verdaccio
-              run: |
-                  npm install -g verdaccio
-                  npm install -g wait-on
-                  tmp_registry_log=`mktemp`
-                  mkdir -p $HOME/.config/verdaccio
-                  cp -v ./.github/workflows/verdaccio/config.yaml $HOME/.config/verdaccio/config.yaml
-                  nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &
-                  wait-on http://localhost:4873
-                  TOKEN_RES=$(curl -XPUT \
-                    -H "Content-type: application/json" \
-                    -d '{ "name": "test", "password": "test" }' \
-                    'http://localhost:4873/-/user/org.couchdb.user:test')
-                  TOKEN=$(echo "$TOKEN_RES" | jq -r '.token')
-                  npm set //localhost:4873/:_authToken $TOKEN
-            - name: Windows dependencies
-              if: matrix.os == 'windows-latest'
-              run: npm install -g @angular/cli
-            - name: npm install
-              run: |
-                  npm install
-              env:
-                  CI: true
-            - name: Publish to Verdaccio
-              run: |
-                  nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &
-                  wait-on http://localhost:4873
-                  npx lerna publish prepatch --preid ci --no-push --no-git-tag-version --no-commit-hooks --force-publish "*" --yes --dist-tag ci --registry http://localhost:4873
-            - name: Install via @vendure/create
-              run: |
-                  mkdir -p $HOME/install
-                  cd $HOME/install
-                  nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &
-                  wait-on http://localhost:4873
-                  npm set registry=http://localhost:4873
-                  npm dist-tag ls @vendure/create
-                  npx @vendure/create@ci test-app --ci --use-npm --log-level info
-            - name: Server smoke tests
-              run: |
-                  cd $HOME/install/test-app
-                  npm run dev &
-                  node $GITHUB_WORKSPACE/.github/workflows/scripts/smoke-tests

+ 13 - 10
README.md

@@ -8,8 +8,8 @@ An open-source headless commerce platform built on [Node.js](https://nodejs.org)
 > We're phasing out our Angular-based Admin UI with support until June 2026:
 > [Read more here](https://vendure.io/blog/2025/02/vendure-react-admin-ui)
 
-[![Build Status](https://github.com/vendure-ecommerce/vendure/actions/workflows/build_and_test_master.yml/badge.svg)](https://github.com/vendure-ecommerce/vendure/actions/workflows/build_and_test_master.yml)
-[![Publish & Install](https://github.com/vendure-ecommerce/vendure/actions/workflows/publish_and_install_master.yml/badge.svg)](https://github.com/vendure-ecommerce/vendure/actions/workflows/publish_and_install_master.yml)
+[![Build Status](https://github.com/vendure-ecommerce/vendure/actions/workflows/build_and_test.yml/badge.svg?branch=master)](https://github.com/vendure-ecommerce/vendure/actions/workflows/build_and_test.yml)
+[![Publish & Install](https://github.com/vendure-ecommerce/vendure/actions/workflows/publish_and_install.yml/badge.svg?branch=master)](https://github.com/vendure-ecommerce/vendure/actions/workflows/publish_and_install.yml)
 [![Lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org/)
 
 ![vendure-github-social-banner](https://github.com/vendure-ecommerce/vendure/assets/24294584/ada25fa3-185d-45ce-896d-bece3685a829)
@@ -45,7 +45,7 @@ vendure/
 
 ## Contributing
 
-You are very much welcome to contribute to Vendure, we appreciate every pull request made, issue reported or any other form of feedback or input. 
+You are very much welcome to contribute to Vendure, we appreciate every pull request made, issue reported or any other form of feedback or input.
 
 Before getting started, please read our [Contribution Guidelines](https://github.com/vendure-ecommerce/vendure/blob/master/CONTRIBUTING.md) first to make the most out of your time and ours.
 
@@ -109,9 +109,11 @@ By default, if you do not specify the `DB` environment variable, it will use **M
 If you want to develop against **PostgreSQL**:
 
 1. Run the `postgres_16` Docker container.
+
 ```bash
 docker-compose up -d postgres_16
 ```
+
 2. Create a .env file in `/packages/dev-server` and declare the `DB` variable inside it:
 
     ```env
@@ -144,15 +146,13 @@ Default Admin UI credentials:
 Username: `superadmin`
 Password: `superadmin`
 
-
 ### Testing Admin UI changes locally
 
 If you are making changes to the Admin UI, you need to start the Admin UI independent from the dev-server:
 
-> [!NOTE] 
+> [!NOTE]
 > You don't need this step when you just use the Admin UI just
-to test backend changes since the `dev-server` package ships with a default admin-ui
-
+> to test backend changes since the `dev-server` package ships with a default admin-ui
 
 ```
 cd packages/admin-ui
@@ -164,11 +164,11 @@ This will run a separate process of admin-ui on "http://localhost:4200", you can
 Username: `superadmin`
 Password: `superadmin`
 
-This will auto restart when you make changes to the Admin UI. 
+This will auto restart when you make changes to the Admin UI.
 
 ### Testing your changes locally
 
-This example shows how to test changes to the `payments-plugin` package locally. 
+This example shows how to test changes to the `payments-plugin` package locally.
 This same workflow can be used for other packages as well.
 
 ### Terminal Setup
@@ -183,6 +183,7 @@ npm run watch
 ```
 
 **Terminal 2** - Run the development server:
+
 ```bash
 cd packages/dev-server
 npm run dev
@@ -191,15 +192,17 @@ npm run dev
 > [!NOTE]
 > After making changes, you need to stop and restart the development server to see your changes.
 
-> [!WARNING] 
+> [!WARNING]
 > If you are developing changes for the `core` package, you also need to watch the `common` package:
 
 in the root of the project:
+
 ```shell
 npm run watch:core-common
 ```
 
 #### Development Workflow Summary
+
 1. Start your package watcher (npm run watch)
 2. Start the dev-server (npm run dev)
 3. Make code changes