CI: improve monorepo setup time in PHPUnit and API tests. (#50032)
In this PR we introduce a new installation logic aiming only PHPUnit and API test jobs as part of monorepo setup.
This commit is contained in:
parent
c12cb6ccdf
commit
63c77caf95
|
@ -52,8 +52,8 @@ runs:
|
|||
uses: 'actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319'
|
||||
with:
|
||||
path: "${{ env.PNPM_STORE_PATH }}"
|
||||
key: "${{ runner.os }}-pnpm-${{ inputs.pull-package-deps }}-${{ hashFiles( 'pnpm-lock.yaml' ) }}"
|
||||
restore-keys: '${{ runner.os }}-pnpm-${{ inputs.pull-package-deps }}-'
|
||||
key: "${{ runner.os }}-pnpm-${{ inputs.pull-package-deps }}-build:${{ inputs.build-type }}-${{ hashFiles( 'pnpm-lock.yaml' ) }}"
|
||||
restore-keys: '${{ runner.os }}-pnpm-${{ inputs.pull-package-deps }}-build:${{ inputs.build-type }}-'
|
||||
- name: 'Cache: node cache'
|
||||
if: ${{ inputs.pull-package-deps != 'false' }}
|
||||
uses: 'actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319'
|
||||
|
@ -86,7 +86,15 @@ runs:
|
|||
if: ${{ inputs.install == 'true' || steps.project-filters.outputs.install != '' }}
|
||||
shell: 'bash'
|
||||
# The installation command is a bit odd as it's a workaround for know bug - https://github.com/pnpm/pnpm/issues/6300.
|
||||
run: "pnpm install ${{ steps.project-filters.outputs.install }} --frozen-lockfile ${{ steps.project-filters.outputs.install != '' && '--config.dedupe-peer-dependents=false' || '' }}"
|
||||
run: |
|
||||
if [[ '${{ inputs.install }}' == '@woocommerce/plugin-woocommerce...' && '${{ inputs.build-type }}' == 'backend' ]]; then
|
||||
# PHPUnit/REST testing optimized installation of the deps: minimalistic and parallellized between PHP/JS.
|
||||
# JS deps installation is abit hard-core, but all we need actually is wp-env and playwright - we are good at that regard.
|
||||
composer install --working-dir=./plugins/woocommerce --quiet &
|
||||
pnpm install --filter='@woocommerce/plugin-woocommerce' --frozen-lockfile --config.dedupe-peer-dependents=false --ignore-scripts
|
||||
else
|
||||
pnpm install ${{ steps.project-filters.outputs.install }} --frozen-lockfile ${{ steps.project-filters.outputs.install != '' && '--config.dedupe-peer-dependents=false' || '' }}
|
||||
fi
|
||||
# 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'
|
||||
|
|
Loading…
Reference in New Issue