Optimize Workflow Caching (#34607)
* Added Monorepo Setup Action This action will handle the installation, building, and caching for all projects within the monorepo. It has inputs for skipping builds and filtering so that only specific packages are installed and built. * Removed Test Caching Caching the results of tests, while an interesting way to avoid unnecessary execution, seems error-prone. We can't adequately capture the environment such that we can rely on this working. For instance, changes in PHP version might break PHPUnit tests, but, cached runs will be shared across different workflows. It seems better to just not cache it and rely on people only testing code that has actually changed in the pull request. * Added Input Parsing This SHOULD allow for passing multiple filters as an array argument. * Updated Workflows This fully utilizes the new action across all of the workflows. * Always Cache Build Output Since there may be other commands run that populate the cache, we should make sure that we are always caching just in case.
This commit is contained in:
parent
e3ca9364a4
commit
a49f23abfd
|
@ -1,22 +0,0 @@
|
||||||
name: Cache Dependencies (Composite)
|
|
||||||
description: Creates and restores caches for dependencies.
|
|
||||||
inputs:
|
|
||||||
workflow_cache:
|
|
||||||
required: true
|
|
||||||
description: The workflow cache key.
|
|
||||||
workflow_name:
|
|
||||||
required: true
|
|
||||||
description: The name of the workflow.
|
|
||||||
|
|
||||||
runs:
|
|
||||||
using: "composite"
|
|
||||||
steps:
|
|
||||||
- name: Dependency caching
|
|
||||||
uses: actions/cache@v3
|
|
||||||
id: cache-deps
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
~/.pnpm-store
|
|
||||||
~/.local/share/pnpm/store
|
|
||||||
~/.cache/composer/files
|
|
||||||
key: ${{ runner.os }}-${{ inputs.workflow_name }}-${{ inputs.workflow_cache }}-${{ hashFiles('**/composer.lock', '**/pnpm-lock.yaml') }}
|
|
|
@ -1,29 +0,0 @@
|
||||||
name: Install and Build (Composite)
|
|
||||||
description: Installs and builds WooCommerce.
|
|
||||||
inputs:
|
|
||||||
working_directory:
|
|
||||||
required: false
|
|
||||||
description: The directory to target.
|
|
||||||
default: ./
|
|
||||||
composer_no_dev:
|
|
||||||
required: false
|
|
||||||
description: COMPOSER_NO_DEV option.
|
|
||||||
default: 1
|
|
||||||
|
|
||||||
runs:
|
|
||||||
using: "composite"
|
|
||||||
steps:
|
|
||||||
- name: Install PNPM
|
|
||||||
shell: bash
|
|
||||||
working-directory: ${{ inputs.working_directory }}
|
|
||||||
run: npm install -g pnpm@^6.24.2
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
shell: bash
|
|
||||||
working-directory: ${{ inputs.working_directory }}
|
|
||||||
run: COMPOSER_NO_DEV=${{ inputs.composer_no_dev }} pnpm install
|
|
||||||
|
|
||||||
- name: Run build
|
|
||||||
shell: bash
|
|
||||||
working-directory: ${{ inputs.working_directory }}
|
|
||||||
run: pnpm run build --filter="${{ inputs.working_directory }}" --color
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
# GitHub Action: Setup WooCommerce Monorepo
|
||||||
|
|
||||||
|
This action will prime the plugins, packages, and tools in the monorepo for other workflows. This includes support for installing dependencies, building projects, and caching the output of both.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
See [`action.yml`](action.yml) for information about all of the inputs the action supports.
|
|
@ -0,0 +1,66 @@
|
||||||
|
name: Setup WooCommerce Monorepo
|
||||||
|
description: Handles the installation, building, and caching of the projects within the monorepo.
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
install-filters:
|
||||||
|
description: The PNPM filter used to decide what projects to install. Supports multiline strings for multiple filters.
|
||||||
|
default: ""
|
||||||
|
build:
|
||||||
|
description: Indicates whether or not the action should build any projects.
|
||||||
|
default: "true"
|
||||||
|
build-filters:
|
||||||
|
description: The PNPM filter used to decide what projects to build. Supports multiline strings for multiple filters.
|
||||||
|
default: ""
|
||||||
|
php-version:
|
||||||
|
description: The version of PHP that the action should set up.
|
||||||
|
default: "7.2"
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: composite
|
||||||
|
steps:
|
||||||
|
- name: Parse Action Input
|
||||||
|
id: parse-input
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "::set-output name=INSTALL_FILTERS::$(node ./.github/actions/setup-woocommerce-monorepo/scripts/parse-input-filter.js '${{ inputs.install-filters }}')"
|
||||||
|
echo "::set-output name=BUILD_FILTERS::$(node ./.github/actions/setup-woocommerce-monorepo/scripts/parse-input-filter.js '${{ inputs.build-filters }}')"
|
||||||
|
|
||||||
|
- name: Setup PNPM
|
||||||
|
uses: pnpm/action-setup@10693b3829bf86eb2572aef5f3571dcf5ca9287d
|
||||||
|
with:
|
||||||
|
version: 6
|
||||||
|
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93
|
||||||
|
with:
|
||||||
|
node-version-file: .nvmrc
|
||||||
|
cache: pnpm
|
||||||
|
|
||||||
|
- name: Setup PHP
|
||||||
|
uses: shivammathur/setup-php@e04e1d97f0c0481c6e1ba40f8a538454fe5d7709
|
||||||
|
with:
|
||||||
|
php-version: ${{ inputs.php-version }}
|
||||||
|
coverage: none
|
||||||
|
|
||||||
|
- name: Cache Composer Dependencies
|
||||||
|
uses: actions/cache@fd5de65bc895cf536527842281bea11763fefd77
|
||||||
|
with:
|
||||||
|
path: ~/.cache/composer/files
|
||||||
|
key: ${{ runner.os }}-php-${{ inputs.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||||
|
restore-keys: ${{ runner.os }}-php-${{ inputs.php-version }}-composer-
|
||||||
|
|
||||||
|
- name: Install Node and PHP Dependencies
|
||||||
|
shell: bash
|
||||||
|
run: pnpm install ${{ steps.parse-input.outputs.INSTALL_FILTERS }}
|
||||||
|
|
||||||
|
- name: Cache Build Output
|
||||||
|
uses: actions/cache@fd5de65bc895cf536527842281bea11763fefd77
|
||||||
|
with:
|
||||||
|
path: node_modules/.cache/turbo
|
||||||
|
key: ${{ runner.os }}-build-output-${{ hashFiles('node_modules/.cache/turbo/*-meta.json') }}
|
||||||
|
restore-keys: ${{ runner.os }}-build-output-
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
if: ${{ inputs.build == 'true' }}
|
||||||
|
shell: bash
|
||||||
|
run: pnpm -w exec turbo run turbo:build ${{ steps.parse-input.outputs.BUILD_FILTERS }}
|
|
@ -0,0 +1,22 @@
|
||||||
|
const args = process.argv.slice(2);
|
||||||
|
if (args.length != 1) {
|
||||||
|
console.error('Filters must be passed as a single string!');
|
||||||
|
process.exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read all of the given filters and return the full filter options string.
|
||||||
|
const filterLines = args[0].split("\n");
|
||||||
|
let output = '';
|
||||||
|
for (const line of filterLines) {
|
||||||
|
if (line === '') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (output !== '') {
|
||||||
|
output += ' ';
|
||||||
|
}
|
||||||
|
output += "--filter='" + line + "'";
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(output);
|
||||||
|
process.exit(0);
|
|
@ -13,18 +13,10 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- uses: ./.github/actions/cache-deps
|
- name: Setup WooCommerce Monorepo
|
||||||
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
with:
|
with:
|
||||||
workflow_name: build-release-zip-file
|
build: false
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Install PNPM
|
|
||||||
run: npm install -g pnpm@^6.24.2
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Build zip
|
- name: Build zip
|
||||||
working-directory: plugins/woocommerce
|
working-directory: plugins/woocommerce
|
||||||
|
|
|
@ -8,18 +8,11 @@ jobs:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- uses: ./.github/actions/cache-deps
|
|
||||||
|
- name: Setup WooCommerce Monorepo
|
||||||
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
with:
|
with:
|
||||||
workflow_name: build-release
|
build: false
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Install PNPM
|
|
||||||
run: npm install -g pnpm@^6.24.2
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Build zip
|
- name: Build zip
|
||||||
working-directory: plugins/woocommerce
|
working-directory: plugins/woocommerce
|
||||||
|
|
|
@ -41,29 +41,16 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- uses: ./.github/actions/cache-deps
|
- name: Setup WooCommerce Monorepo
|
||||||
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
with:
|
with:
|
||||||
workflow_name: ci
|
build-filters: woocommerce
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: ${{ matrix.php }}
|
|
||||||
tools: composer
|
|
||||||
extensions: mysql
|
|
||||||
coverage: none
|
|
||||||
|
|
||||||
- name: Tool versions
|
- name: Tool versions
|
||||||
run: |
|
run: |
|
||||||
php --version
|
php --version
|
||||||
composer --version
|
composer --version
|
||||||
|
|
||||||
- name: Install and Build
|
|
||||||
uses: ./.github/actions/install-build
|
|
||||||
with:
|
|
||||||
composer_no_dev: 0
|
|
||||||
|
|
||||||
- name: Build Admin feature config
|
- name: Build Admin feature config
|
||||||
run: pnpm build:feature-config --filter=woocommerce
|
run: pnpm build:feature-config --filter=woocommerce
|
||||||
|
|
||||||
|
|
|
@ -12,18 +12,10 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- uses: ./.github/actions/cache-deps
|
- name: Setup WooCommerce Monorepo
|
||||||
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
with:
|
with:
|
||||||
workflow_name: mirrors
|
build: false
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Install PNPM
|
|
||||||
run: npm install -g pnpm@^6.24.2
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Build zip
|
- name: Build zip
|
||||||
working-directory: plugins/woocommerce
|
working-directory: plugins/woocommerce
|
||||||
|
|
|
@ -17,18 +17,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
ref: ${{ matrix.build }}
|
ref: ${{ matrix.build }}
|
||||||
|
|
||||||
- uses: ./.github/actions/cache-deps
|
- name: Setup WooCommerce Monorepo
|
||||||
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
with:
|
with:
|
||||||
workflow_name: nightly-builds
|
build: false
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Install PNPM
|
|
||||||
run: npm install -g pnpm@^6.24.2
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Build zip
|
- name: Build zip
|
||||||
working-directory: plugins/woocommerce
|
working-directory: plugins/woocommerce
|
||||||
|
|
|
@ -12,27 +12,9 @@ jobs:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- uses: ./.github/actions/cache-deps
|
|
||||||
with:
|
- name: Setup WooCommerce Monorepo
|
||||||
workflow_name: package-release
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Setup Node
|
|
||||||
uses: actions/setup-node@v2
|
|
||||||
with:
|
|
||||||
node-version: '16'
|
|
||||||
registry-url: 'https://registry.npmjs.org'
|
|
||||||
|
|
||||||
- name: Install PNPM
|
|
||||||
run: npm install -g pnpm@^6.24.2
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pnpm install
|
|
||||||
|
|
||||||
- name: Execute script
|
- name: Execute script
|
||||||
run: ./tools/package-release/bin/dev publish ${{ github.event.inputs.packages }} --branch=${{ github.ref_name }} --skip-install
|
run: ./tools/package-release/bin/dev publish ${{ github.event.inputs.packages }} --branch=${{ github.ref_name }} --skip-install
|
||||||
|
|
|
@ -13,18 +13,9 @@ jobs:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- uses: ./.github/actions/cache-deps
|
|
||||||
with:
|
- name: Setup WooCommerce Monorepo
|
||||||
workflow_name: pr-build-and-e2e-tests
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Install and Build
|
|
||||||
uses: ./.github/actions/install-build
|
|
||||||
|
|
||||||
- name: Load docker images and start containers.
|
- name: Load docker images and start containers.
|
||||||
working-directory: plugins/woocommerce
|
working-directory: plugins/woocommerce
|
||||||
|
@ -73,18 +64,9 @@ jobs:
|
||||||
API_TEST_REPORT_DIR: ${{ github.workspace }}/api-test-report
|
API_TEST_REPORT_DIR: ${{ github.workspace }}/api-test-report
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- uses: ./.github/actions/cache-deps
|
|
||||||
with:
|
- name: Setup WooCommerce Monorepo
|
||||||
workflow_name: pr-build-and-e2e-tests
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Install and Build
|
|
||||||
uses: ./.github/actions/install-build
|
|
||||||
|
|
||||||
- name: Load docker images and start containers.
|
- name: Load docker images and start containers.
|
||||||
working-directory: plugins/woocommerce
|
working-directory: plugins/woocommerce
|
||||||
|
@ -113,18 +95,9 @@ jobs:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- uses: ./.github/actions/cache-deps
|
|
||||||
with:
|
- name: Setup WooCommerce Monorepo
|
||||||
workflow_name: pr-build-and-e2e-tests
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Install and Build
|
|
||||||
uses: ./.github/actions/install-build
|
|
||||||
|
|
||||||
- name: Load docker images and start containers.
|
- name: Load docker images and start containers.
|
||||||
working-directory: plugins/woocommerce
|
working-directory: plugins/woocommerce
|
||||||
|
|
|
@ -26,29 +26,16 @@ jobs:
|
||||||
with:
|
with:
|
||||||
fetch-depth: 100
|
fetch-depth: 100
|
||||||
|
|
||||||
- name: Setup PHP
|
- name: Setup WooCommerce Monorepo
|
||||||
uses: shivammathur/setup-php@v2
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
with:
|
with:
|
||||||
php-version: 7.4
|
php-version: 7.4
|
||||||
tools: composer
|
|
||||||
extensions: mysql
|
|
||||||
coverage: none
|
|
||||||
|
|
||||||
- name: Tool versions
|
- name: Tool versions
|
||||||
run: |
|
run: |
|
||||||
php --version
|
php --version
|
||||||
composer --version
|
composer --version
|
||||||
|
|
||||||
- uses: ./.github/actions/cache-deps
|
|
||||||
with:
|
|
||||||
workflow_name: pr-code-coverage
|
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Install and Build
|
|
||||||
uses: ./.github/actions/install-build
|
|
||||||
with:
|
|
||||||
composer_no_dev: 0
|
|
||||||
|
|
||||||
- name: Build Admin feature config
|
- name: Build Admin feature config
|
||||||
run: |
|
run: |
|
||||||
pnpm build:feature-config --filter=woocommerce
|
pnpm build:feature-config --filter=woocommerce
|
||||||
|
|
|
@ -17,27 +17,16 @@ jobs:
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Setup PHP
|
- name: Setup WooCommerce Monorepo
|
||||||
uses: shivammathur/setup-php@v2
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
with:
|
with:
|
||||||
php-version: 7.4
|
build: false
|
||||||
tools: composer
|
|
||||||
|
|
||||||
- name: Tool versions
|
- name: Tool versions
|
||||||
run: |
|
run: |
|
||||||
php --version
|
php --version
|
||||||
composer --version
|
composer --version
|
||||||
|
|
||||||
- uses: ./.github/actions/cache-deps
|
|
||||||
with:
|
|
||||||
workflow_name: pr-code-sniff
|
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Install and Build
|
|
||||||
uses: ./.github/actions/install-build
|
|
||||||
with:
|
|
||||||
composer_no_dev: 0
|
|
||||||
|
|
||||||
- name: Run code sniffer
|
- name: Run code sniffer
|
||||||
uses: thenabeel/action-phpcs@v8
|
uses: thenabeel/action-phpcs@v8
|
||||||
with:
|
with:
|
||||||
|
|
|
@ -17,11 +17,10 @@ jobs:
|
||||||
ref: ${{ github.event.pull_request.head.sha }}
|
ref: ${{ github.event.pull_request.head.sha }}
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Setup PHP
|
- name: Setup WooCommerce Monorepo
|
||||||
uses: shivammathur/setup-php@v2
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
with:
|
with:
|
||||||
php-version: '7.4'
|
build: false
|
||||||
tools: composer
|
|
||||||
|
|
||||||
- name: Check change files are touched for touched projects
|
- name: Check change files are touched for touched projects
|
||||||
env:
|
env:
|
||||||
|
@ -29,11 +28,5 @@ jobs:
|
||||||
HEAD: ${{ github.event.pull_request.head.sha }}
|
HEAD: ${{ github.event.pull_request.head.sha }}
|
||||||
run: php tools/monorepo/check-changelogger-use.php --debug "$BASE" "$HEAD"
|
run: php tools/monorepo/check-changelogger-use.php --debug "$BASE" "$HEAD"
|
||||||
|
|
||||||
- name: Install PNPM
|
|
||||||
run: npm install -g pnpm@^6.24.2
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pnpm install
|
|
||||||
|
|
||||||
- name: Run changelog validation
|
- name: Run changelog validation
|
||||||
run: pnpm changelog --filter=* -- validate
|
run: pnpm changelog --filter=* -- validate
|
||||||
|
|
|
@ -12,22 +12,10 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- uses: actions/setup-node@v2
|
- name: Setup WooCommerce Monorepo
|
||||||
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
with:
|
with:
|
||||||
node-version: '16'
|
install-filters: 'woocommerce/client/admin...'
|
||||||
|
|
||||||
- uses: ./.github/actions/cache-deps
|
|
||||||
with:
|
|
||||||
workflow_name: pr-lint-test-js
|
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Install and Build
|
|
||||||
uses: ./.github/actions/install-build
|
|
||||||
|
|
||||||
- name: Lint
|
- name: Lint
|
||||||
run: pnpm run lint --filter='woocommerce/client/admin...' --filter='!@woocommerce/e2e*' --filter='!@woocommerce/api' --color
|
run: pnpm run lint --filter='woocommerce/client/admin...' --filter='!@woocommerce/e2e*' --filter='!@woocommerce/api' --color
|
||||||
|
|
|
@ -17,22 +17,12 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- uses: ./.github/actions/cache-deps
|
- name: Setup WooCommerce Monorepo
|
||||||
with:
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
workflow_name: pr-smoke-test
|
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Install Jest
|
- name: Install Jest
|
||||||
run: pnpm install -g jest
|
run: pnpm install -g jest
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Install and Build
|
|
||||||
uses: ./.github/actions/install-build
|
|
||||||
|
|
||||||
- name: Run smoke test.
|
- name: Run smoke test.
|
||||||
working-directory: plugins/woocommerce
|
working-directory: plugins/woocommerce
|
||||||
if: always()
|
if: always()
|
||||||
|
|
|
@ -37,33 +37,16 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- uses: ./.github/actions/cache-deps
|
- name: Setup WooCommerce Monorepo
|
||||||
with:
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
workflow_name: pr-unit-tests
|
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
with:
|
||||||
php-version: ${{ matrix.php }}
|
php-version: ${{ matrix.php }}
|
||||||
tools: composer
|
|
||||||
extensions: mysql
|
|
||||||
coverage: none
|
|
||||||
|
|
||||||
- name: Tool versions
|
- name: Tool versions
|
||||||
run: |
|
run: |
|
||||||
php --version
|
php --version
|
||||||
composer --version
|
composer --version
|
||||||
|
|
||||||
- name: Install and Build
|
|
||||||
uses: ./.github/actions/install-build
|
|
||||||
with:
|
|
||||||
composer_no_dev: 0
|
|
||||||
|
|
||||||
- name: Build Admin feature config
|
|
||||||
run: |
|
|
||||||
pnpm build:feature-config --filter=woocommerce
|
|
||||||
|
|
||||||
- name: Add PHP8 Compatibility.
|
- name: Add PHP8 Compatibility.
|
||||||
run: |
|
run: |
|
||||||
if [ "$(php -r "echo version_compare(PHP_VERSION,'8.0','>=');")" ]; then
|
if [ "$(php -r "echo version_compare(PHP_VERSION,'8.0','>=');")" ]; then
|
||||||
|
|
|
@ -12,21 +12,9 @@ jobs:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- uses: ./.github/actions/cache-deps
|
|
||||||
with:
|
- name: Setup WooCommerce Monorepo
|
||||||
workflow_name: prepare-package-release
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Install PNPM
|
|
||||||
run: npm install -g pnpm@^6.24.2
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pnpm install
|
|
||||||
|
|
||||||
- name: Execute script
|
- name: Execute script
|
||||||
run: ./tools/package-release/bin/dev prepare ${{ github.event.inputs.packages }}
|
run: ./tools/package-release/bin/dev prepare ${{ github.event.inputs.packages }}
|
||||||
|
|
|
@ -13,17 +13,8 @@ jobs:
|
||||||
prime:
|
prime:
|
||||||
name: Prime cache
|
name: Prime cache
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
strategy:
|
|
||||||
fail-fast: true
|
|
||||||
matrix:
|
|
||||||
workflow: [ 'pr-unit-tests', 'pr-build-and-e2e-tests', 'pr-code-coverage', 'pr-code-sniff', 'pr-lint-test-js', 'pr-smoke-test' ]
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- uses: ./.github/actions/cache-deps
|
- name: Setup WooCommerce Monorepo
|
||||||
with:
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
workflow_name: ${{ matrix.workflow }}
|
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Install and Build
|
|
||||||
uses: ./.github/actions/install-build
|
|
||||||
|
|
|
@ -24,14 +24,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Install PNPM
|
- name: Setup WooCommerce Monorepo
|
||||||
run: npm install -g pnpm@^6.24.2
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
|
|
||||||
- name: "Install PHP"
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
with:
|
||||||
php-version: '7.4'
|
build: false
|
||||||
tools: composer
|
|
||||||
|
|
||||||
- name: "Git fetch the release branch"
|
- name: "Git fetch the release branch"
|
||||||
run: git fetch origin ${{ inputs.releaseBranch }}
|
run: git fetch origin ${{ inputs.releaseBranch }}
|
||||||
|
@ -42,9 +38,6 @@ jobs:
|
||||||
- name: "Create a new branch for the changelog update PR"
|
- name: "Create a new branch for the changelog update PR"
|
||||||
run: git checkout -b ${{ format( 'update/{0}-changelog', inputs.releaseVersion ) }}
|
run: git checkout -b ${{ format( 'update/{0}-changelog', inputs.releaseVersion ) }}
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pnpm install
|
|
||||||
|
|
||||||
- name: "Generate the changelog file"
|
- name: "Generate the changelog file"
|
||||||
run: pnpm changelog --filter=woocommerce -- write --add-pr-num -n -vvv --use-version ${{ inputs.releaseVersion }}
|
run: pnpm changelog --filter=woocommerce -- write --add-pr-num -n -vvv --use-version ${{ inputs.releaseVersion }}
|
||||||
|
|
||||||
|
|
|
@ -65,22 +65,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
fetch-depth: 100
|
fetch-depth: 100
|
||||||
|
|
||||||
- uses: ./.github/actions/cache-deps
|
- name: Setup WooCommerce Monorepo
|
||||||
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
with:
|
with:
|
||||||
workflow_name: release-code-freeze
|
build: false
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Install PNPM
|
|
||||||
run: npm install -g pnpm@^6.24.2
|
|
||||||
|
|
||||||
- name: "Install PHP"
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
tools: composer
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pnpm install
|
|
||||||
|
|
||||||
- name: "Run the script to enforce the code freeze"
|
- name: "Run the script to enforce the code freeze"
|
||||||
id: freeze
|
id: freeze
|
||||||
|
|
|
@ -17,18 +17,8 @@ jobs:
|
||||||
with:
|
with:
|
||||||
ref: trunk
|
ref: trunk
|
||||||
|
|
||||||
- uses: ./.github/actions/cache-deps
|
- name: Setup WooCommerce Monorepo
|
||||||
with:
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
workflow_name: smoke-test-daily
|
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Install and Build
|
|
||||||
uses: ./.github/actions/install-build
|
|
||||||
|
|
||||||
- name: Install Jest
|
- name: Install Jest
|
||||||
run: npm install -g jest
|
run: npm install -g jest
|
||||||
|
@ -130,18 +120,10 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- uses: ./.github/actions/cache-deps
|
- name: Setup WooCommerce Monorepo
|
||||||
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
with:
|
with:
|
||||||
workflow_name: smoke-test-daily
|
build: false
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Install PNPM
|
|
||||||
run: npm install -g pnpm@^6.24.2
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Build zip
|
- name: Build zip
|
||||||
working-directory: plugins/woocommerce
|
working-directory: plugins/woocommerce
|
||||||
|
@ -187,21 +169,6 @@ jobs:
|
||||||
with:
|
with:
|
||||||
path: package/woocommerce
|
path: package/woocommerce
|
||||||
|
|
||||||
- uses: ./package/woocommerce/.github/actions/cache-deps
|
|
||||||
with:
|
|
||||||
workflow_name: smoke-test-daily
|
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Install and Build
|
|
||||||
uses: ./package/woocommerce/.github/actions/install-build
|
|
||||||
with:
|
|
||||||
working_directory: package/woocommerce
|
|
||||||
|
|
||||||
- name: Download WooCommerce ZIP.
|
- name: Download WooCommerce ZIP.
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
|
|
|
@ -14,18 +14,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
ref: trunk
|
ref: trunk
|
||||||
|
|
||||||
- uses: ./.github/actions/cache-deps
|
- name: Setup WooCommerce Monorepo
|
||||||
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
with:
|
with:
|
||||||
workflow_name: smoke-test-release
|
build-filters: woocommerce
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Install and Build
|
|
||||||
uses: ./.github/actions/install-build
|
|
||||||
|
|
||||||
- name: Install Jest
|
- name: Install Jest
|
||||||
run: npm install -g jest
|
run: npm install -g jest
|
||||||
|
@ -70,10 +62,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
path: package/woocommerce
|
path: package/woocommerce
|
||||||
|
|
||||||
- uses: ./package/woocommerce/.github/actions/cache-deps
|
- name: Setup WooCommerce Monorepo
|
||||||
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
with:
|
with:
|
||||||
workflow_name: smoke-test-release
|
build-filters: woocommerce
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Fetch Asset ID
|
- name: Fetch Asset ID
|
||||||
id: fetch_asset_id
|
id: fetch_asset_id
|
||||||
|
@ -87,16 +79,6 @@ jobs:
|
||||||
const script = require( './package/woocommerce/.github/workflows/scripts/fetch-asset-id.js' )
|
const script = require( './package/woocommerce/.github/workflows/scripts/fetch-asset-id.js' )
|
||||||
await script({github, context, core})
|
await script({github, context, core})
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Install and Build
|
|
||||||
uses: ./package/woocommerce/.github/actions/install-build
|
|
||||||
with:
|
|
||||||
working_directory: package/woocommerce
|
|
||||||
|
|
||||||
- name: Download WooCommerce release zip
|
- name: Download WooCommerce release zip
|
||||||
working-directory: tmp
|
working-directory: tmp
|
||||||
run: |
|
run: |
|
||||||
|
@ -149,10 +131,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
path: package/woocommerce
|
path: package/woocommerce
|
||||||
|
|
||||||
- uses: ./package/woocommerce/.github/actions/cache-deps
|
- name: Setup WooCommerce Monorepo
|
||||||
|
uses: ./.github/actions/setup-woocommerce-monorepo
|
||||||
with:
|
with:
|
||||||
workflow_name: smoke-test-release
|
build-filters: woocommerce
|
||||||
workflow_cache: ${{ secrets.WORKFLOW_CACHE }}
|
|
||||||
|
|
||||||
- name: Fetch Asset ID
|
- name: Fetch Asset ID
|
||||||
id: fetch_asset_id
|
id: fetch_asset_id
|
||||||
|
@ -166,16 +148,6 @@ jobs:
|
||||||
const script = require( './package/woocommerce/.github/workflows/scripts/fetch-asset-id.js' )
|
const script = require( './package/woocommerce/.github/workflows/scripts/fetch-asset-id.js' )
|
||||||
await script({github, context, core})
|
await script({github, context, core})
|
||||||
|
|
||||||
- name: Setup PHP
|
|
||||||
uses: shivammathur/setup-php@v2
|
|
||||||
with:
|
|
||||||
php-version: '7.4'
|
|
||||||
|
|
||||||
- name: Install and Build
|
|
||||||
uses: ./package/woocommerce/.github/actions/install-build
|
|
||||||
with:
|
|
||||||
working_directory: package/woocommerce
|
|
||||||
|
|
||||||
- name: Download WooCommerce release zip
|
- name: Download WooCommerce release zip
|
||||||
working-directory: tmp
|
working-directory: tmp
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -73,15 +73,8 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
"turbo:test": {
|
"turbo:test": {
|
||||||
|
"cache": false,
|
||||||
"dependsOn": [ "turbo:build" ],
|
"dependsOn": [ "turbo:build" ],
|
||||||
"inputs": [
|
|
||||||
"src/**/*.js",
|
|
||||||
"src/**/*.jsx",
|
|
||||||
"src/**/*.ts",
|
|
||||||
"src/**/*.tsx",
|
|
||||||
"src/**/*.php",
|
|
||||||
"includes/**/*.php"
|
|
||||||
],
|
|
||||||
"outputs": []
|
"outputs": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue