Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'trunk' into as-update-to-php-81
- Loading branch information
Showing
4,847 changed files
with
437,688 additions
and
28,863 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,3 +13,4 @@ | |
*.tsx text eol=lf | ||
*.css text eol=lf | ||
*.scss text eol=lf | ||
*.flf text eol=lf |
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,91 +1,66 @@ | ||
name: Setup WooCommerce Monorepo | ||
description: Handles the installation, building, and caching of the projects within the monorepo. | ||
permissions: {} | ||
|
||
name: 'Setup WooCommerce Monorepo' | ||
description: 'A composite action bundling together the setup of dependencies and optional installation and building of projects.' | ||
inputs: | ||
install: | ||
description: Indicates whether or not the action should install any projects. | ||
default: 'true' | ||
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.4' | ||
|
||
php-version: | ||
description: 'The PHP version that should be installed. Use "false" to skip PHP installation.' | ||
default: '7.4' | ||
install: | ||
description: 'Given a boolean or PNPM filter, runs the install command for monorepo project(s).' | ||
default: false | ||
build: | ||
description: 'Given a boolean or PNPM filter, runs the build command for monorepo project(s).' | ||
default: false | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Parse Action Input | ||
id: parse-input | ||
shell: bash | ||
run: | | ||
echo "INSTALL_FILTERS=$(node ./.github/actions/setup-woocommerce-monorepo/scripts/parse-input-filter.js '${{ inputs.install-filters }}')" >> $GITHUB_OUTPUT | ||
echo "BUILD_FILTERS=$(node ./.github/actions/setup-woocommerce-monorepo/scripts/parse-input-filter.js '${{ inputs.build-filters }}')" >> $GITHUB_OUTPUT | ||
- name: Setup PNPM | ||
uses: pnpm/action-setup@c3b53f6a16e57305370b4ae5a540c2077a1d50dd | ||
with: | ||
version: '8.6.7' | ||
|
||
- name: Setup Node | ||
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c | ||
with: | ||
node-version-file: .nvmrc | ||
cache: pnpm | ||
registry-url: 'https://registry.npmjs.org' | ||
|
||
- name: Setup PHP | ||
uses: shivammathur/setup-php@8e2ac35f639d3e794c1da1f28999385ab6fdf0fc | ||
with: | ||
php-version: ${{ inputs.php-version }} | ||
coverage: none | ||
tools: phpcs, sirbrillig/phpcs-changed:2.11.1 | ||
|
||
- name: Cache Composer Dependencies | ||
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 | ||
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 | ||
if: ${{ inputs.install == 'true' }} | ||
env: | ||
PUPPETEER_SKIP_DOWNLOAD: 'true' | ||
run: | | ||
pnpm -w install turbo | ||
pnpm install ${{ steps.parse-input.outputs.INSTALL_FILTERS }} | ||
- name: Get branch name | ||
id: get_branch | ||
shell: bash | ||
run: | | ||
if [ "${{ github.event_name }}" == "pull_request" ]; then | ||
branch_name=$(echo "${{ github.head_ref }}" | tr '/' '-') | ||
echo "CURRENT_BRANCH_NAME=$branch_name" >> $GITHUB_OUTPUT | ||
else | ||
echo "CURRENT_BRANCH_NAME=${{ github.ref_name }}" >> $GITHUB_OUTPUT | ||
fi | ||
- name: Cache Build Output | ||
if: ${{ inputs.build == 'true' }} | ||
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 | ||
with: | ||
path: .turbo | ||
key: ${{ runner.os }}-build-output-${{ steps.get_branch.outputs.CURRENT_BRANCH_NAME }}-${{ github.sha }} | ||
restore-keys: | | ||
${{ runner.os }}-build-output-${{ steps.get_branch.outputs.CURRENT_BRANCH_NAME }} | ||
${{ runner.os }}-build-output | ||
- name: Build | ||
if: ${{ inputs.install == 'true' && inputs.build == 'true' }} | ||
shell: bash | ||
run: pnpm -w exec turbo run turbo:build --cache-dir=".turbo" ${{ steps.parse-input.outputs.BUILD_FILTERS }} | ||
using: 'composite' | ||
steps: | ||
- name: 'Read PNPM Version' | ||
id: 'read-pnpm-version' | ||
shell: 'bash' | ||
run: 'echo "version=$(./.github/actions/setup-woocommerce-monorepo/scripts/read-pnpm-version.sh package.json)" >> $GITHUB_OUTPUT' | ||
- name: 'Setup PNPM' | ||
uses: 'pnpm/action-setup@d882d12c64e032187b2edb46d3a0d003b7a43598' | ||
with: | ||
version: ${{ steps.read-pnpm-version.outputs.version }} | ||
- name: 'Setup Node' | ||
uses: 'actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65' | ||
with: | ||
node-version-file: '.nvmrc' | ||
# We only want to use the cache if something is being installed. | ||
cache: ${{ inputs.install != 'false' && 'pnpm' || '' }} | ||
- name: 'Setup PHP' | ||
if: ${{ inputs.php-version != 'false' }} | ||
uses: 'shivammathur/setup-php@a36e1e52ff4a1c9e9c9be31551ee4712a6cb6bd0' | ||
with: | ||
php-version: '${{ inputs.php-version }}' | ||
coverage: 'none' | ||
- name: 'Cache Composer Dependencies' | ||
if: ${{ inputs.php-version != 'false' }} | ||
uses: 'actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84' | ||
with: | ||
path: '~/.cache/composer/files' | ||
key: "${{ runner.os }}-composer-${{ hashFiles( '**/composer.lock' ) }}" | ||
restore-keys: '${{ runner.os }}-composer-' | ||
- name: 'Parse Project Filters' | ||
id: 'project-filters' | ||
shell: 'bash' | ||
run: | | ||
echo "install=$(node ./.github/actions/setup-woocommerce-monorepo/scripts/parse-input-filter.js '${{ inputs.install }}')" >> $GITHUB_OUTPUT | ||
echo "build=$(node ./.github/actions/setup-woocommerce-monorepo/scripts/parse-input-filter.js '${{ inputs.build }}')" >> $GITHUB_OUTPUT | ||
- name: 'Install Project Dependencies' | ||
# Boolean inputs aren't parsed into filters so it'll either be "true" or there will be a filter. | ||
if: ${{ inputs.install == 'true' || steps.project-filters.outputs.install != '' }} | ||
shell: 'bash' | ||
run: 'pnpm install' | ||
# `pnpm install` filtering is broken: https://github.com/pnpm/pnpm/issues/6300 | ||
# run: 'pnpm install ${{ steps.project-filters.outputs.install }}' | ||
# We want to include an option to build projects using this action so that we can make | ||
# sure that the build cache is always used when building projects. | ||
- name: 'Cache Build Output' | ||
# Boolean inputs aren't parsed into filters so it'll either be "true" or there will be a filter. | ||
if: ${{ inputs.build == 'true' || steps.project-filters.outputs.build != '' }} | ||
uses: 'google/wireit@f3a3c79c553122e2fe5829eeac7d815326502903' | ||
- name: 'Build' | ||
# Boolean inputs aren't parsed into filters so it'll either be "true" or there will be a filter. | ||
if: ${{ inputs.build == 'true' || steps.project-filters.outputs.build != '' }} | ||
shell: 'bash' | ||
run: 'pnpm ${{ steps.project-filters.outputs.build }} build' |
27 changes: 16 additions & 11 deletions
27
.github/actions/setup-woocommerce-monorepo/scripts/parse-input-filter.js
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,27 @@ | ||
const args = process.argv.slice(2); | ||
if (args.length != 1) { | ||
console.error('Filters must be passed as a single string!'); | ||
process.exit(-1); | ||
const args = process.argv.slice( 2 ); | ||
if ( args.length != 1 ) { | ||
console.error( 'Filters must be passed as a single string!' ); | ||
process.exit( -1 ); | ||
} | ||
|
||
// Boolean inputs should not be processed. | ||
if ( args[0] === 'true' || args[0] === 'false' ) { | ||
process.exit(); | ||
} | ||
|
||
// Read all of the given filters and return the full filter options string. | ||
const filterLines = args[0].split("\n"); | ||
const filterLines = args[0].split( "\n" ); | ||
let output = ''; | ||
for (const line of filterLines) { | ||
if (line === '') { | ||
for ( const line of filterLines ) { | ||
if ( line === '' ) { | ||
continue; | ||
} | ||
|
||
if (output !== '') { | ||
if ( output !== '' ) { | ||
output += ' '; | ||
} | ||
output += "--filter='" + line + "'"; | ||
output += `--filter='${ line }'`; | ||
} | ||
|
||
console.log(output); | ||
process.exit(0); | ||
console.log( output ); | ||
process.exit(); |
9 changes: 9 additions & 0 deletions
9
.github/actions/setup-woocommerce-monorepo/scripts/read-pnpm-version.sh
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
#!/usr/bin/env bash | ||
|
||
PACKAGE_FILE=$1 | ||
if [[ -z "$PACKAGE_FILE" ]]; then | ||
echo "Usage: $0 <package.json>" | ||
exit 1 | ||
fi | ||
|
||
awk -F'"' '/"pnpm": ".+"/{ print $4; exit; }' $PACKAGE_FILE |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
when: | ||
- author: | ||
teamIs: | ||
- rubik | ||
ignore: | ||
nameIs: | ||
assign: | ||
teams: | ||
- rubik | ||
- author: | ||
teamIs: | ||
- woo-fse | ||
ignore: | ||
nameIs: | ||
assign: | ||
teams: | ||
- woo-fse |
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
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
15 changes: 15 additions & 0 deletions
15
.github/workflows/automate-team-review-assignment-config.yml
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
name: 'Automate assigning team for review.' | ||
on: | ||
pull_request: | ||
types: [opened, ready_for_review] | ||
|
||
jobs: | ||
add-reviews: | ||
if: github.event.pull_request.draft == false && github.actor != 'dependabot[bot]' | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Check config and assign reviews | ||
uses: acq688/Request-Reviewer-For-Team-Action@v1.1 | ||
with: | ||
config: '.github/automate-team-review-assignment-config.yml' | ||
GITHUB_TOKEN: ${{ secrets.FINE_GRAINED_TOKEN_ACTIONS }} |
Oops, something went wrong.