Changeset 58165
- Timestamp:
- 05/17/2024 05:41:40 PM (5 months ago)
- Location:
- trunk/.github/workflows
- Files:
-
- 6 added
- 8 edited
- 4 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/.github/workflows/coding-standards.yml
r57757 r58165 46 46 47 47 jobs: 48 # Runs PHP coding standards checks. 49 # 50 # Violations are reported inline with annotations. 51 # 52 # Performs the following steps: 53 # - Checks out the repository. 54 # - Sets up PHP. 55 # - Configures caching for PHPCS scans. 56 # - Installs Composer dependencies. 57 # - Make Composer packages available globally. 58 # - Runs PHPCS on the full codebase with warnings suppressed. 59 # - Generate a report for displaying issues as pull request annotations. 60 # - Runs PHPCS on the `tests` directory without warnings suppressed. 61 # - Generate a report for displaying `test` directory issues as pull request annotations. 62 # - Ensures version-controlled files are not modified or deleted. 48 # Runs the PHP coding standards checks. 63 49 phpcs: 64 50 name: PHP coding standards 65 runs-on: ubuntu-latest51 uses: WordPress/wordpress-develop/.github/workflows/reusable-coding-standards-php.yml@trunk 66 52 permissions: 67 53 contents: read 68 timeout-minutes: 2069 54 if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} 70 55 71 steps:72 - name: Checkout repository73 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.174 with:75 show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}76 77 - name: Set up PHP78 uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2.30.079 with:80 php-version: 'latest'81 coverage: none82 tools: cs2pr83 84 # This date is used to ensure that the PHPCS cache is cleared at least once every week.85 # http://man7.org/linux/man-pages/man1/date.1.html86 - name: "Get last Monday's date"87 id: get-date88 run: echo "date=$(/bin/date -u --date='last Mon' "+%F")" >> $GITHUB_OUTPUT89 90 - name: Cache PHPCS scan cache91 uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.192 with:93 path: |94 .cache/phpcs-src.json95 .cache/phpcs-tests.json96 key: ${{ runner.os }}-date-${{ steps.get-date.outputs.date }}-phpcs-cache-${{ hashFiles('**/composer.json', 'phpcs.xml.dist') }}97 98 # Since Composer dependencies are installed using `composer update` and no lock file is in version control,99 # passing a custom cache suffix ensures that the cache is flushed at least once per week.100 - name: Install Composer dependencies101 uses: ramsey/composer-install@57532f8be5bda426838819c5ee9afb8af389d51a # v3.0.0102 with:103 custom-cache-suffix: ${{ steps.get-date.outputs.date }}104 105 - name: Make Composer packages available globally106 run: echo "${PWD}/vendor/bin" >> $GITHUB_PATH107 108 - name: Run PHPCS on all Core files109 id: phpcs-core110 run: phpcs -n --report-full --cache=./.cache/phpcs-src.json --report-checkstyle=./.cache/phpcs-report.xml111 112 - name: Show PHPCS results in PR113 if: ${{ always() && steps.phpcs-core.outcome == 'failure' }}114 run: cs2pr ./.cache/phpcs-report.xml115 116 - name: Check test suite files for warnings117 id: phpcs-tests118 run: phpcs tests --report-full --cache=./.cache/phpcs-tests.json --report-checkstyle=./.cache/phpcs-tests-report.xml119 120 - name: Show test suite scan results in PR121 if: ${{ always() && steps.phpcs-tests.outcome == 'failure' }}122 run: cs2pr ./.cache/phpcs-tests-report.xml123 124 - name: Ensure version-controlled files are not modified during the tests125 run: git diff --exit-code126 127 56 # Runs the JavaScript coding standards checks. 128 #129 # JSHint violations are not currently reported inline with annotations.130 #131 # Performs the following steps:132 # - Checks out the repository.133 # - Sets up Node.js.134 # - Logs debug information about the GitHub Action runner.135 # - Installs npm dependencies.136 # - Run the WordPress JSHint checks.137 # - Ensures version-controlled files are not modified or deleted.138 57 jshint: 139 58 name: JavaScript coding standards 140 runs-on: ubuntu-latest59 uses: WordPress/wordpress-develop/.github/workflows/reusable-coding-standards-javascript.yml@trunk 141 60 permissions: 142 61 contents: read 143 timeout-minutes: 20144 62 if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} 145 env:146 PUPPETEER_SKIP_DOWNLOAD: ${{ true }}147 148 steps:149 - name: Checkout repository150 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1151 with:152 show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}153 154 - name: Set up Node.js155 uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2156 with:157 node-version-file: '.nvmrc'158 cache: npm159 160 - name: Log debug information161 run: |162 npm --version163 node --version164 git --version165 166 - name: Install npm Dependencies167 run: npm ci168 169 - name: Run JSHint170 run: npm run grunt jshint171 172 - name: Ensure version-controlled files are not modified or deleted173 run: git diff --exit-code174 63 175 64 slack-notifications: -
trunk/.github/workflows/end-to-end-tests.yml
r57918 r58165 37 37 jobs: 38 38 # Runs the end-to-end test suite. 39 #40 # Performs the following steps:41 # - Sets environment variables.42 # - Checks out the repository.43 # - Sets up Node.js.44 # - Logs debug information about the GitHub Action runner.45 # - Installs npm dependencies.46 # - Install Playwright browsers.47 # - Builds WordPress to run from the `build` directory.48 # - Starts the WordPress Docker container.49 # - Logs the running Docker containers.50 # - Logs Docker debug information (about both the Docker installation within the runner and the WordPress container).51 # - Install WordPress within the Docker container.52 # - Install Gutenberg.53 # - Run the E2E tests.54 # - Ensures version-controlled files are not modified or deleted.55 39 e2e-tests: 56 name: E2E Testswith SCRIPT_DEBUG ${{ matrix.LOCAL_SCRIPT_DEBUG && 'enabled' || 'disabled' }}57 runs-on: ubuntu-latest40 name: Test with SCRIPT_DEBUG ${{ matrix.LOCAL_SCRIPT_DEBUG && 'enabled' || 'disabled' }} 41 uses: WordPress/wordpress-develop/.github/workflows/reusable-end-to-end-tests.yml@trunk 58 42 permissions: 59 43 contents: read 60 timeout-minutes: 2061 44 if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} 62 45 strategy: … … 64 47 matrix: 65 48 LOCAL_SCRIPT_DEBUG: [ true, false ] 66 67 steps: 68 - name: Configure environment variables 69 run: | 70 echo "PHP_FPM_UID=$(id -u)" >> $GITHUB_ENV 71 echo "PHP_FPM_GID=$(id -g)" >> $GITHUB_ENV 72 73 - name: Checkout repository 74 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 75 with: 76 show-progress: ${{ runner.debug == '1' && 'true' || 'false' }} 77 78 - name: Set up Node.js 79 uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 80 with: 81 node-version-file: '.nvmrc' 82 cache: npm 83 84 - name: Log debug information 85 run: | 86 npm --version 87 node --version 88 curl --version 89 git --version 90 locale -a 91 92 - name: Install npm Dependencies 93 run: npm ci 94 95 - name: Install Playwright browsers 96 run: npx playwright install --with-deps 97 98 - name: Build WordPress 99 run: npm run build 100 101 - name: Start Docker environment 102 run: | 103 npm run env:start 104 105 - name: Log running Docker containers 106 run: docker ps -a 107 108 - name: Docker debug information 109 run: | 110 docker -v 111 docker compose run --rm mysql mysql --version 112 docker compose run --rm php php --version 113 docker compose run --rm php php -m 114 docker compose run --rm php php -i 115 docker compose run --rm php locale -a 116 117 - name: Install WordPress 118 env: 119 LOCAL_SCRIPT_DEBUG: ${{ matrix.LOCAL_SCRIPT_DEBUG }} 120 run: npm run env:install 121 122 - name: Install Gutenberg 123 run: npm run env:cli -- plugin install gutenberg --path=/var/www/${{ env.LOCAL_DIR }} 124 125 - name: Run E2E tests 126 run: npm run test:e2e 127 128 - name: Archive debug artifacts (screenshots, HTML snapshots) 129 uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 130 if: always() 131 with: 132 name: failures-artifacts${{ matrix.LOCAL_SCRIPT_DEBUG && '-SCRIPT_DEBUG' || '' }}-${{ github.run_id }} 133 path: artifacts 134 if-no-files-found: ignore 135 136 - name: Ensure version-controlled files are not modified or deleted 137 run: git diff --exit-code 49 with: 50 LOCAL_SCRIPT_DEBUG: ${{ matrix.LOCAL_SCRIPT_DEBUG }} 138 51 139 52 slack-notifications: -
trunk/.github/workflows/javascript-tests.yml
r57655 r58165 44 44 45 45 jobs: 46 # Runs the QUnit tests for WordPress. 47 # 48 # Performs the following steps: 49 # - Checks out the repository. 50 # - Sets up Node.js. 51 # - Logs debug information about the GitHub Action runner. 52 # - Installs npm dependencies. 53 # - Run the WordPress QUnit tests. 54 # - Ensures version-controlled files are not modified or deleted. 46 # Runs the WordPress Core JavaScript tests. 55 47 test-js: 56 48 name: QUnit Tests 57 runs-on: ubuntu-latest49 uses: WordPress/wordpress-develop/.github/workflows/reusable-javascript-tests.yml@trunk 58 50 permissions: 59 51 contents: read 60 timeout-minutes: 2061 52 if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} 62 63 steps:64 - name: Checkout repository65 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.166 with:67 show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}68 69 - name: Set up Node.js70 uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.271 with:72 node-version-file: '.nvmrc'73 cache: npm74 75 - name: Log debug information76 run: |77 npm --version78 node --version79 git --version80 81 - name: Install npm Dependencies82 run: npm ci83 84 - name: Run QUnit tests85 run: npm run grunt qunit:compiled86 87 - name: Ensure version-controlled files are not modified or deleted88 run: git diff --exit-code89 53 90 54 slack-notifications: -
trunk/.github/workflows/performance.yml
r58076 r58165 30 30 permissions: {} 31 31 32 env:33 PUPPETEER_SKIP_DOWNLOAD: ${{ true }}34 35 # Performance testing should be performed in an environment reflecting a standard production environment.36 LOCAL_WP_DEBUG: false37 LOCAL_SCRIPT_DEBUG: false38 LOCAL_SAVEQUERIES: false39 LOCAL_WP_DEVELOPMENT_MODE: "''"40 41 # This workflow takes two sets of measurements — one for the current commit,42 # and another against a consistent version that is used as a baseline measurement.43 # This is done to isolate variance in measurements caused by the GitHub runners44 # from differences caused by code changes between commits. The BASE_TAG value here45 # represents the version being used for baseline measurements. It should only be46 # changed if we want to normalize results against a different baseline.47 BASE_TAG: '6.1.1'48 LOCAL_DIR: build49 TARGET_REF: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.ref || '' }}50 TARGET_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event.before }}51 52 32 jobs: 53 33 # Runs the performance test suite. 54 #55 # Performs the following steps:56 # - Configure environment variables.57 # - Checkout repository.58 # - Set up Node.js.59 # - Log debug information.60 # - Install npm dependencies.61 # - Install Playwright browsers.62 # - Build WordPress.63 # - Start Docker environment.64 # - Log running Docker containers.65 # - Docker debug information.66 # - Install WordPress.67 # - Install WordPress Importer plugin.68 # - Import mock data.69 # - Deactivate WordPress Importer plugin.70 # - Update permalink structure.71 # - Install additional languages.72 # - Disable external HTTP requests.73 # - Disable cron.74 # - List defined constants.75 # - Install MU plugin.76 # - Run performance tests (current commit).77 # - Download previous build artifact (target branch or previous commit).78 # - Download artifact.79 # - Unzip the build.80 # - Run any database upgrades.81 # - Flush cache.82 # - Delete expired transients.83 # - Run performance tests (previous/target commit).84 # - Set the environment to the baseline version.85 # - Run any database upgrades.86 # - Flush cache.87 # - Delete expired transients.88 # - Run baseline performance tests.89 # - Archive artifacts.90 # - Compare results.91 # - Add workflow summary.92 # - Set the base sha.93 # - Set commit details.94 # - Publish performance results.95 # - Ensure version-controlled files are not modified or deleted.96 34 performance: 97 name: Run performance tests ${{ matrix.memcached && '(with memcached)' || '' }}98 runs-on: ubuntu-latest35 name: Performance tests ${{ matrix.memcached && '(with memcached)' || '' }} 36 uses: WordPress/wordpress-develop/.github/workflows/reusable-performance.yml@trunk 99 37 permissions: 100 38 contents: read … … 104 42 matrix: 105 43 memcached: [ true, false ] 106 env: 107 LOCAL_PHP_MEMCACHED: ${{ matrix.memcached }} 108 steps: 109 - name: Configure environment variables 110 run: | 111 echo "PHP_FPM_UID=$(id -u)" >> $GITHUB_ENV 112 echo "PHP_FPM_GID=$(id -g)" >> $GITHUB_ENV 113 114 - name: Checkout repository 115 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 116 with: 117 show-progress: ${{ runner.debug == '1' && 'true' || 'false' }} 118 119 - name: Set up Node.js 120 uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 121 with: 122 node-version-file: '.nvmrc' 123 cache: npm 124 125 - name: Log debug information 126 run: | 127 npm --version 128 node --version 129 curl --version 130 git --version 131 locale -a 132 133 - name: Install npm dependencies 134 run: npm ci 135 136 - name: Install Playwright browsers 137 run: npx playwright install --with-deps chromium 138 139 - name: Build WordPress 140 run: npm run build 141 142 - name: Start Docker environment 143 run: npm run env:start 144 145 - name: Install object cache drop-in 146 if: ${{ matrix.memcached }} 147 run: cp src/wp-content/object-cache.php build/wp-content/object-cache.php 148 149 - name: Log running Docker containers 150 run: docker ps -a 151 152 - name: Docker debug information 153 run: | 154 docker -v 155 docker compose run --rm mysql mysql --version 156 docker compose run --rm php php --version 157 docker compose run --rm php php -m 158 docker compose run --rm php php -i 159 docker compose run --rm php locale -a 160 161 - name: Install WordPress 162 run: npm run env:install 163 164 - name: Install WordPress Importer plugin 165 run: npm run env:cli -- plugin install wordpress-importer --activate --path=/var/www/${{ env.LOCAL_DIR }} 166 167 - name: Import mock data 168 run: | 169 curl -O https://raw.githubusercontent.com/WordPress/theme-test-data/b9752e0533a5acbb876951a8cbb5bcc69a56474c/themeunittestdata.wordpress.xml 170 npm run env:cli -- import themeunittestdata.wordpress.xml --authors=create --path=/var/www/${{ env.LOCAL_DIR }} 171 rm themeunittestdata.wordpress.xml 172 173 - name: Deactivate WordPress Importer plugin 174 run: npm run env:cli -- plugin deactivate wordpress-importer --path=/var/www/${{ env.LOCAL_DIR }} 175 176 - name: Update permalink structure 177 run: npm run env:cli -- rewrite structure '/%year%/%monthnum%/%postname%/' --path=/var/www/${{ env.LOCAL_DIR }} 178 179 - name: Install additional languages 180 run: | 181 npm run env:cli -- language core install de_DE --path=/var/www/${{ env.LOCAL_DIR }} 182 npm run env:cli -- language plugin install de_DE --all --path=/var/www/${{ env.LOCAL_DIR }} 183 npm run env:cli -- language theme install de_DE --all --path=/var/www/${{ env.LOCAL_DIR }} 184 185 # Prevent background update checks from impacting test stability. 186 - name: Disable external HTTP requests 187 run: npm run env:cli -- config set WP_HTTP_BLOCK_EXTERNAL true --raw --type=constant --path=/var/www/${{ env.LOCAL_DIR }} 188 189 # Prevent background tasks from impacting test stability. 190 - name: Disable cron 191 run: npm run env:cli -- config set DISABLE_WP_CRON true --raw --type=constant --path=/var/www/${{ env.LOCAL_DIR }} 192 193 - name: List defined constants 194 run: npm run env:cli -- config list --path=/var/www/${{ env.LOCAL_DIR }} 195 196 - name: Install MU plugin 197 run: | 198 mkdir ./${{ env.LOCAL_DIR }}/wp-content/mu-plugins 199 cp ./tests/performance/wp-content/mu-plugins/server-timing.php ./${{ env.LOCAL_DIR }}/wp-content/mu-plugins/server-timing.php 200 201 - name: Run performance tests (current commit) 202 run: npm run test:performance 203 204 - name: Download previous build artifact (target branch or previous commit) 205 uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 206 id: get-previous-build 207 with: 208 script: | 209 const artifacts = await github.rest.actions.listArtifactsForRepo({ 210 owner: context.repo.owner, 211 repo: context.repo.repo, 212 name: 'wordpress-build-' + process.env.TARGET_SHA, 213 }); 214 215 const matchArtifact = artifacts.data.artifacts[0]; 216 217 if ( ! matchArtifact ) { 218 core.setFailed( 'No artifact found!' ); 219 return false; 220 } 221 222 const download = await github.rest.actions.downloadArtifact( { 223 owner: context.repo.owner, 224 repo: context.repo.repo, 225 artifact_id: matchArtifact.id, 226 archive_format: 'zip', 227 } ); 228 229 const fs = require( 'fs' ); 230 fs.writeFileSync( '${{ github.workspace }}/before.zip', Buffer.from( download.data ) ) 231 232 return true; 233 234 - name: Unzip the build 235 if: ${{ steps.get-previous-build.outputs.result }} 236 run: | 237 unzip ${{ github.workspace }}/before.zip 238 unzip -o ${{ github.workspace }}/wordpress.zip 239 240 - name: Run any database upgrades 241 if: ${{ steps.get-previous-build.outputs.result }} 242 run: npm run env:cli -- core update-db --path=/var/www/${{ env.LOCAL_DIR }} 243 244 - name: Flush cache 245 if: ${{ steps.get-previous-build.outputs.result }} 246 run: npm run env:cli -- cache flush --path=/var/www/${{ env.LOCAL_DIR }} 247 248 - name: Delete expired transients 249 if: ${{ steps.get-previous-build.outputs.result }} 250 run: npm run env:cli -- transient delete --expired --path=/var/www/${{ env.LOCAL_DIR }} 251 252 - name: Run target performance tests (previous/target commit) 253 if: ${{ steps.get-previous-build.outputs.result }} 254 env: 255 TEST_RESULTS_PREFIX: before 256 run: npm run test:performance 257 258 - name: Set the environment to the baseline version 259 if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/trunk' }} 260 run: | 261 npm run env:cli -- core update --version=${{ env.BASE_TAG }} --force --path=/var/www/${{ env.LOCAL_DIR }} 262 npm run env:cli -- core version --path=/var/www/${{ env.LOCAL_DIR }} 263 264 - name: Run any database upgrades 265 if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/trunk' }} 266 run: npm run env:cli -- core update-db --path=/var/www/${{ env.LOCAL_DIR }} 267 268 - name: Flush cache 269 if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/trunk' }} 270 run: npm run env:cli -- cache flush --path=/var/www/${{ env.LOCAL_DIR }} 271 272 - name: Delete expired transients 273 if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/trunk' }} 274 run: npm run env:cli -- transient delete --expired --path=/var/www/${{ env.LOCAL_DIR }} 275 276 - name: Run baseline performance tests 277 if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/trunk' }} 278 env: 279 TEST_RESULTS_PREFIX: base 280 run: npm run test:performance 281 282 - name: Archive artifacts 283 uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 284 if: always() 285 with: 286 name: performance-artifacts${{ matrix.memcached && '-memcached' || '' }}-${{ github.run_id }} 287 path: artifacts 288 if-no-files-found: ignore 289 290 - name: Compare results 291 run: node ./tests/performance/compare-results.js ${{ runner.temp }}/summary.md 292 293 - name: Add workflow summary 294 run: cat ${{ runner.temp }}/summary.md >> $GITHUB_STEP_SUMMARY 295 296 - name: Set the base sha 297 # Only needed when publishing results. 298 if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/trunk' && ! matrix.memcached }} 299 uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 300 id: base-sha 301 with: 302 github-token: ${{ secrets.GITHUB_TOKEN }} 303 script: | 304 const baseRef = await github.rest.git.getRef({ owner: context.repo.owner, repo: context.repo.repo, ref: 'tags/${{ env.BASE_TAG }}' }); 305 return baseRef.data.object.sha; 306 307 - name: Set commit details 308 # Only needed when publishing results. 309 if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/trunk' && ! matrix.memcached }} 310 uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 311 id: commit-timestamp 312 with: 313 github-token: ${{ secrets.GITHUB_TOKEN }} 314 script: | 315 const commit_details = await github.rest.git.getCommit({ owner: context.repo.owner, repo: context.repo.repo, commit_sha: context.sha }); 316 return parseInt((new Date( commit_details.data.author.date ).getTime() / 1000).toFixed(0)) 317 318 - name: Publish performance results 319 # Only publish results on pushes to trunk. 320 if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/trunk' && ! matrix.memcached }} 321 env: 322 BASE_SHA: ${{ steps.base-sha.outputs.result }} 323 COMMITTED_AT: ${{ steps.commit-timestamp.outputs.result }} 324 CODEVITALS_PROJECT_TOKEN: ${{ secrets.CODEVITALS_PROJECT_TOKEN }} 325 HOST_NAME: "www.codevitals.run" 326 run: node ./tests/performance/log-results.js $CODEVITALS_PROJECT_TOKEN trunk $GITHUB_SHA $BASE_SHA $COMMITTED_AT $HOST_NAME 327 328 - name: Ensure version-controlled files are not modified or deleted 329 run: git diff --exit-code 44 with: 45 memcached: ${{ matrix.memcached }} 330 46 331 47 slack-notifications: -
trunk/.github/workflows/php-compatibility.yml
r57757 r58165 41 41 42 42 jobs: 43 44 43 # Runs PHP compatibility testing. 45 #46 # Violations are reported inline with annotations.47 #48 # Performs the following steps:49 # - Checks out the repository.50 # - Sets up PHP.51 # - Logs debug information.52 # - Configures caching for PHP compatibility scans.53 # - Installs Composer dependencies.54 # - Make Composer packages available globally.55 # - Runs the PHP compatibility tests.56 # - Generate a report for displaying issues as pull request annotations.57 # - Ensures version-controlled files are not modified or deleted.58 44 php-compatibility: 59 45 name: Check PHP compatibility 60 runs-on: ubuntu-latest46 uses: WordPress/wordpress-develop/.github/workflows/reusable-php-compatibility.yml@trunk 61 47 permissions: 62 48 contents: read 63 timeout-minutes: 2064 49 if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} 65 66 steps:67 - name: Checkout repository68 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.169 with:70 show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}71 72 - name: Set up PHP73 uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2.30.074 with:75 php-version: '7.4'76 coverage: none77 tools: cs2pr78 79 - name: Log debug information80 run: |81 composer --version82 83 # This date is used to ensure that the PHP compatibility cache is cleared at least once every week.84 # http://man7.org/linux/man-pages/man1/date.1.html85 - name: "Get last Monday's date"86 id: get-date87 run: echo "date=$(/bin/date -u --date='last Mon' "+%F")" >> $GITHUB_OUTPUT88 89 - name: Cache PHP compatibility scan cache90 uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.191 with:92 path: .cache/phpcompat.json93 key: ${{ runner.os }}-date-${{ steps.get-date.outputs.date }}-phpcompat-cache-${{ hashFiles('**/composer.json', 'phpcompat.xml.dist') }}94 95 # Since Composer dependencies are installed using `composer update` and no lock file is in version control,96 # passing a custom cache suffix ensures that the cache is flushed at least once per week.97 - name: Install Composer dependencies98 uses: ramsey/composer-install@57532f8be5bda426838819c5ee9afb8af389d51a # v3.0.099 with:100 custom-cache-suffix: ${{ steps.get-date.outputs.date }}101 102 - name: Make Composer packages available globally103 run: echo "${PWD}/vendor/bin" >> $GITHUB_PATH104 105 - name: Run PHP compatibility tests106 id: phpcs107 run: phpcs --standard=phpcompat.xml.dist --report-full --report-checkstyle=./.cache/phpcs-compat-report.xml108 109 - name: Show PHPCompatibility results in PR110 if: ${{ always() && steps.phpcs.outcome == 'failure' }}111 run: cs2pr ./.cache/phpcs-compat-report.xml112 113 - name: Ensure version-controlled files are not modified or deleted114 run: git diff --exit-code115 50 116 51 slack-notifications: -
trunk/.github/workflows/phpunit-tests.yml
r58097 r58165 37 37 test-with-mysql: 38 38 name: PHP ${{ matrix.php }} 39 uses: WordPress/wordpress-develop/.github/workflows/ phpunit-tests-run.yml@trunk39 uses: WordPress/wordpress-develop/.github/workflows/reusable-phpunit-tests.yml@trunk 40 40 permissions: 41 41 contents: read … … 109 109 test-with-mariadb: 110 110 name: PHP ${{ matrix.php }} 111 uses: WordPress/wordpress-develop/.github/workflows/ phpunit-tests-run.yml@trunk111 uses: WordPress/wordpress-develop/.github/workflows/reusable-phpunit-tests.yml@trunk 112 112 permissions: 113 113 contents: read -
trunk/.github/workflows/reusable-phpunit-tests.yml
r58164 r58165 1 1 ## 2 # A callable workflow that runs the PHPUnit test suite with the specified configuration.2 # A reusable workflow that runs the PHPUnit test suite with the specified configuration. 3 3 ## 4 4 name: Run PHPUnit tests -
trunk/.github/workflows/reusable-test-core-build-process.yml
r58164 r58165 1 1 ## 2 # A callable workflow that tests the WordPress Core build process.2 # A reusable workflow that tests the WordPress Core build process. 3 3 ## 4 4 name: Test the WordPress Build Process … … 17 17 type: 'string' 18 18 default: 'src' 19 test-emoji: 20 description: 'Whether to run the grunt precommit:emoji script.' 21 required: false 22 type: 'boolean' 23 default: true 19 24 20 25 env: … … 63 68 64 69 - name: Run Emoji precommit task 70 if: ${{ inputs.test-emoji }} 65 71 run: npm run grunt precommit:emoji 66 72 env: -
trunk/.github/workflows/reusable-test-gutenberg-build-process.yml
r58164 r58165 1 1 ## 2 # A callable workflow that tests the Gutenberg plugin build process when run within a wordpress-develop checkout.2 # A reusable workflow that tests the Gutenberg plugin build process when run within a wordpress-develop checkout. 3 3 ## 4 4 name: Test the Gutenberg plugin Build Process -
trunk/.github/workflows/reusable-upgrade-testing.yml
r58164 r58165 1 # A callable workflow that runs WordPress upgrade testing under the conditions provided.1 # A reusable workflow that runs WordPress upgrade testing under the conditions provided. 2 2 name: Upgrade Tests 3 3 -
trunk/.github/workflows/test-build-processes.yml
r57655 r58165 32 32 test-core-build-process: 33 33 name: Core running from ${{ matrix.directory }} 34 uses: WordPress/wordpress-develop/.github/workflows/ callable-test-core-build-process.yml@trunk34 uses: WordPress/wordpress-develop/.github/workflows/reusable-test-core-build-process.yml@trunk 35 35 permissions: 36 36 contents: read … … 55 55 test-core-build-process-macos: 56 56 name: Core running from ${{ matrix.directory }} 57 uses: WordPress/wordpress-develop/.github/workflows/ callable-test-core-build-process.yml@trunk57 uses: WordPress/wordpress-develop/.github/workflows/reusable-test-core-build-process.yml@trunk 58 58 permissions: 59 59 contents: read … … 71 71 test-gutenberg-build-process: 72 72 name: Gutenberg running from ${{ matrix.directory }} 73 uses: WordPress/wordpress-develop/.github/workflows/ callable-test-gutenberg-build-process.yml@trunk73 uses: WordPress/wordpress-develop/.github/workflows/reusable-test-gutenberg-build-process.yml@trunk 74 74 permissions: 75 75 contents: read … … 94 94 test-gutenberg-build-process-macos: 95 95 name: Gutenberg running from ${{ matrix.directory }} 96 uses: WordPress/wordpress-develop/.github/workflows/ callable-test-gutenberg-build-process.yml@trunk96 uses: WordPress/wordpress-develop/.github/workflows/reusable-test-gutenberg-build-process.yml@trunk 97 97 permissions: 98 98 contents: read -
trunk/.github/workflows/upgrade-testing.yml
r57985 r58165 36 36 upgrade-tests-wp-6x-mysql: 37 37 name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} 38 uses: WordPress/wordpress-develop/.github/workflows/ upgrade-testing-run.yml@trunk38 uses: WordPress/wordpress-develop/.github/workflows/reusable-upgrade-testing.yml@trunk 39 39 if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} 40 40 permissions: … … 61 61 upgrade-tests-wp-5x-php-7x-mysql: 62 62 name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} 63 uses: WordPress/wordpress-develop/.github/workflows/ upgrade-testing-run.yml@trunk63 uses: WordPress/wordpress-develop/.github/workflows/reusable-upgrade-testing.yml@trunk 64 64 if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} 65 65 strategy: … … 88 88 upgrade-tests-wp-5x-php-8x-mysql: 89 89 name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} 90 uses: WordPress/wordpress-develop/.github/workflows/ upgrade-testing-run.yml@trunk90 uses: WordPress/wordpress-develop/.github/workflows/reusable-upgrade-testing.yml@trunk 91 91 if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} 92 92 strategy: … … 111 111 upgrade-tests-wp-4x-php-7x-mysql: 112 112 name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} 113 uses: WordPress/wordpress-develop/.github/workflows/ upgrade-testing-run.yml@trunk113 uses: WordPress/wordpress-develop/.github/workflows/reusable-upgrade-testing.yml@trunk 114 114 if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} 115 115 strategy: … … 138 138 upgrade-tests-wp-4x-php-8x-mysql: 139 139 name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} 140 uses: WordPress/wordpress-develop/.github/workflows/ upgrade-testing-run.yml@trunk140 uses: WordPress/wordpress-develop/.github/workflows/reusable-upgrade-testing.yml@trunk 141 141 if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} 142 142 strategy:
Note: See TracChangeset
for help on using the changeset viewer.