mirror of
https://ghproxy.net/https://github.com/wp-cli/wp-cli-bundle.git
synced 2025-10-04 01:41:37 +08:00
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
367 lines
11 KiB
YAML
367 lines
11 KiB
YAML
name: Deployment
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches:
|
|
- main
|
|
- release-**
|
|
|
|
jobs:
|
|
|
|
build: #---------------------------------------------------------------------
|
|
name: Build Phar
|
|
runs-on: ubuntu-latest
|
|
|
|
if: ${{ github.repository_owner == 'wp-cli' }}
|
|
steps:
|
|
- name: Check out source code
|
|
uses: actions/checkout@v5
|
|
|
|
- name: Set up PHP environment
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: '7.4'
|
|
extensions: mysql, zip, imagick
|
|
coverage: none
|
|
tools: composer:2.2
|
|
env:
|
|
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Install Composer dependencies & cache dependencies
|
|
uses: "ramsey/composer-install@v3"
|
|
env:
|
|
COMPOSER_ROOT_VERSION: 'dev-main'
|
|
with:
|
|
# Bust the cache at least once a month - output format: YYYY-MM-DD.
|
|
custom-cache-suffix: $(date -u -d "-0 month -$(($(date +%d)-1)) days" "+%F")
|
|
|
|
- name: Store WP-CLI version
|
|
run: |
|
|
CLI_VERSION=$(head -n 1 vendor/wp-cli/wp-cli/VERSION)
|
|
if [[ $CLI_VERSION == *"-alpha"* ]]
|
|
then
|
|
GIT_HASH=$(git rev-parse HEAD)
|
|
GIT_SHORT_HASH=${GIT_HASH:0:7}
|
|
CLI_VERSION="$CLI_VERSION-$GIT_SHORT_HASH"
|
|
fi
|
|
echo "CLI_VERSION=$CLI_VERSION" > $GITHUB_ENV
|
|
echo "$CLI_VERSION" > cli_version.txt
|
|
|
|
- name: Upload WP-CLI version
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: cli_version
|
|
path: cli_version.txt
|
|
|
|
- name: Upload manifest file
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: manifest
|
|
path: vendor/wp-cli/wp-cli/manifest.json
|
|
|
|
- name: Build the Phar file
|
|
run: php -dphar.readonly=0 utils/make-phar.php wp-cli.phar --version=$CLI_VERSION
|
|
|
|
- name: Upload built Phar file
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: wp-cli-phar
|
|
path: wp-cli.phar
|
|
|
|
test: #----------------------------------------------------------------------
|
|
name: Functional - WP ${{ matrix.wp }} on PHP ${{ matrix.php }} with MySQL ${{ matrix.mysql }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
php: ['7.2', '7.3', '7.4', '8.0']
|
|
wp: ['latest']
|
|
mysql: ['8.0']
|
|
include:
|
|
- php: '7.2'
|
|
wp: 'trunk'
|
|
mysql: '8.0'
|
|
- php: '7.2'
|
|
wp: 'trunk'
|
|
mysql: '5.7'
|
|
- php: '7.2'
|
|
wp: 'trunk'
|
|
mysql: '5.6'
|
|
- php: '7.4'
|
|
wp: 'trunk'
|
|
mysql: '8.0'
|
|
- php: '8.0'
|
|
wp: 'trunk'
|
|
mysql: '8.0'
|
|
- php: '8.0'
|
|
wp: 'trunk'
|
|
mysql: '5.7'
|
|
- php: '8.0'
|
|
wp: 'trunk'
|
|
mysql: '5.6'
|
|
- php: '7.2'
|
|
wp: '4.9'
|
|
mysql: '5.6'
|
|
runs-on: ubuntu-22.04
|
|
env:
|
|
WP_CLI_BIN_DIR: /tmp/wp-cli-phar
|
|
needs: [build]
|
|
|
|
if: ${{ github.repository_owner == 'wp-cli' }}
|
|
steps:
|
|
- name: Check out source code
|
|
uses: actions/checkout@v5
|
|
|
|
- name: Install Ghostscript
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install ghostscript -y
|
|
|
|
- name: Set up PHP environment
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: '${{ matrix.php }}'
|
|
extensions: imagick, mysql, zip
|
|
coverage: none
|
|
tools: composer
|
|
env:
|
|
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Install Composer dependencies & cache dependencies
|
|
uses: "ramsey/composer-install@v3"
|
|
env:
|
|
COMPOSER_ROOT_VERSION: 'dev-main'
|
|
with:
|
|
# Bust the cache at least once a month - output format: YYYY-MM-DD.
|
|
custom-cache-suffix: $(date -u -d "-0 month -$(($(date +%d)-1)) days" "+%F")
|
|
|
|
- name: Change ImageMagick policy to allow pdf->png conversion.
|
|
run: |
|
|
sudo sed -i 's/^.*policy.*coder.*none.*PDF.*//' /etc/ImageMagick-6/policy.xml
|
|
|
|
- name: Download built Phar file
|
|
uses: actions/download-artifact@v5
|
|
with:
|
|
name: wp-cli-phar
|
|
|
|
- name: Prepare built Phar file for Behat tests
|
|
run: |
|
|
mkdir -p $WP_CLI_BIN_DIR
|
|
mv wp-cli.phar $WP_CLI_BIN_DIR/wp
|
|
chmod +x $WP_CLI_BIN_DIR/wp
|
|
|
|
- name: Setup MySQL Server
|
|
id: setup-mysql
|
|
uses: shogo82148/actions-setup-mysql@v1
|
|
with:
|
|
mysql-version: ${{ matrix.mysql }}
|
|
auto-start: true
|
|
root-password: root
|
|
user: wp_cli_test
|
|
password: password1
|
|
my-cnf: |
|
|
default_authentication_plugin=mysql_native_password
|
|
|
|
- name: Configure DB environment
|
|
run: |
|
|
echo "MYSQL_HOST=127.0.0.1" >> $GITHUB_ENV
|
|
echo "MYSQL_TCP_PORT=3306" >> $GITHUB_ENV
|
|
echo "WP_CLI_TEST_DBROOTUSER=root" >> $GITHUB_ENV
|
|
echo "WP_CLI_TEST_DBROOTPASS=root" >> $GITHUB_ENV
|
|
echo "WP_CLI_TEST_DBNAME=wp_cli_test" >> $GITHUB_ENV
|
|
echo "WP_CLI_TEST_DBUSER=wp_cli_test" >> $GITHUB_ENV
|
|
echo "WP_CLI_TEST_DBPASS=password1" >> $GITHUB_ENV
|
|
echo "WP_CLI_TEST_DBHOST=127.0.0.1:3306" >> $GITHUB_ENV
|
|
|
|
- name: Prepare test database
|
|
run: composer prepare-tests
|
|
|
|
- name: Check Behat environment
|
|
run: WP_CLI_TEST_DEBUG_BEHAT_ENV=1 composer behat
|
|
|
|
- name: Run Behat
|
|
env:
|
|
WP_VERSION: '${{ matrix.wp }}'
|
|
run: composer behat || composer behat-rerun
|
|
|
|
deploy: #-----------------------------------------------------------------------
|
|
name: Deployment
|
|
runs-on: ubuntu-latest
|
|
needs: [build, test]
|
|
|
|
if: ${{ github.repository_owner == 'wp-cli' && github.event_name != 'workflow_dispatch' }}
|
|
steps:
|
|
- name: Check out builds repository
|
|
uses: actions/checkout@v5
|
|
with:
|
|
repository: wp-cli/builds
|
|
token: ${{ secrets.ACTIONS_BOT }}
|
|
|
|
- name: Download WP-CLI version
|
|
uses: actions/download-artifact@v5
|
|
with:
|
|
name: cli_version
|
|
|
|
- name: Set new nightly version
|
|
run: |
|
|
cat cli_version.txt > phar/NIGHTLY_VERSION
|
|
|
|
- name: Download manifest file
|
|
uses: actions/download-artifact@v5
|
|
with:
|
|
name: manifest
|
|
|
|
- name: Download built Phar file
|
|
uses: actions/download-artifact@v5
|
|
with:
|
|
name: wp-cli-phar
|
|
|
|
- name: Set file name for release branch
|
|
if: ${{ contains(github.ref, 'release') }}
|
|
run: |
|
|
echo 'FILENAME=wp-cli-release.phar' >> $GITHUB_ENV
|
|
echo 'MANIFEST_FILENAME=wp-cli-release.manifest.json' >> $GITHUB_ENV
|
|
|
|
- name: Set file name for main branch
|
|
if: ${{ contains(github.ref, 'main') }}
|
|
run: |
|
|
echo 'FILENAME=wp-cli-nightly.phar' >> $GITHUB_ENV
|
|
echo 'MANIFEST_FILENAME=wp-cli-nightly.manifest.json' >> $GITHUB_ENV
|
|
|
|
- name: Move manifest file into correct location
|
|
run: |
|
|
mv manifest.json phar/$MANIFEST_FILENAME
|
|
|
|
- name: Move built Phar file into correct location
|
|
run: |
|
|
mv wp-cli.phar phar/$FILENAME
|
|
|
|
- name: Make built Phar executable
|
|
run: |
|
|
chmod +x phar/$FILENAME
|
|
|
|
- name : Create hashes
|
|
run: |
|
|
md5sum phar/$FILENAME | cut -d ' ' -f 1 > phar/$FILENAME.md5
|
|
sha512sum phar/$FILENAME | cut -d ' ' -f 1 > phar/$FILENAME.sha512
|
|
|
|
- name: Commit files
|
|
run: |
|
|
git config --local user.email "action@github.com"
|
|
git config --local user.name "GitHub Action"
|
|
git add phar/$FILENAME phar/$FILENAME.md5 phar/$FILENAME.sha512 phar/NIGHTLY_VERSION phar/$MANIFEST_FILENAME
|
|
git commit -m "phar build: $GITHUB_REPOSITORY@$GITHUB_SHA"
|
|
|
|
- name: Push changes
|
|
uses: ad-m/github-push-action@master
|
|
with:
|
|
github_token: ${{ secrets.ACTIONS_BOT }}
|
|
branch: gh-pages
|
|
repository: wp-cli/builds
|
|
|
|
build-rpm: #-----------------------------------------------------------------------
|
|
name: Build RPM package
|
|
runs-on: ubuntu-latest
|
|
if: ${{ contains(github.ref, 'release') && github.repository_owner == 'wp-cli' && github.event_name != 'workflow_dispatch' }}
|
|
needs: [deploy]
|
|
|
|
steps:
|
|
- name: Check out builds repository
|
|
uses: actions/checkout@v5
|
|
with:
|
|
repository: wp-cli/builds
|
|
token: ${{ secrets.ACTIONS_BOT }}
|
|
|
|
- name: Download built Phar file
|
|
uses: actions/download-artifact@v5
|
|
with:
|
|
name: wp-cli-phar
|
|
|
|
- name: Install RPM build tooling
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install rpm rpmlint -y
|
|
|
|
- name: Download RPM build configuration
|
|
run: |
|
|
wget -O wp-cli-rpm.spec https://raw.githubusercontent.com/wp-cli/wp-cli-bundle/main/utils/wp-cli-rpm.spec
|
|
wget -O wp-cli-updaterpm.sh https://raw.githubusercontent.com/wp-cli/wp-cli-bundle/main/utils/wp-cli-updaterpm.sh
|
|
|
|
- name: Build RPM package
|
|
run: |
|
|
bash wp-cli-updaterpm.sh
|
|
|
|
- name: Verify built RPM package contents
|
|
run: |
|
|
ls rpm-src/noarch
|
|
|
|
- name: Copy RPM package into builds folder
|
|
run: |
|
|
cp -n rpm-src/noarch/wp-cli-*.noarch.rpm rpm
|
|
|
|
- name: Commit files
|
|
run: |
|
|
git config --local user.email "action@github.com"
|
|
git config --local user.name "GitHub Action"
|
|
git add rpm
|
|
git commit -m "rpm build: $GITHUB_REPOSITORY@$GITHUB_SHA"
|
|
|
|
- name: Push changes
|
|
uses: ad-m/github-push-action@master
|
|
with:
|
|
github_token: ${{ secrets.ACTIONS_BOT }}
|
|
branch: gh-pages
|
|
repository: wp-cli/builds
|
|
|
|
build-deb: #-----------------------------------------------------------------------
|
|
name: Build DEB package
|
|
runs-on: ubuntu-latest
|
|
if: ${{ contains(github.ref, 'release') && github.repository_owner == 'wp-cli' && github.event_name != 'workflow_dispatch' }}
|
|
needs: [build-rpm]
|
|
|
|
steps:
|
|
- name: Check out builds repository
|
|
uses: actions/checkout@v5
|
|
with:
|
|
repository: wp-cli/builds
|
|
token: ${{ secrets.ACTIONS_BOT }}
|
|
|
|
- name: Download built Phar file
|
|
uses: actions/download-artifact@v5
|
|
with:
|
|
name: wp-cli-phar
|
|
|
|
- name: Install DEB build tooling
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install fakeroot lintian -y
|
|
|
|
- name: Download DEB build configuration
|
|
run: |
|
|
wget -O wp-cli-updatedeb.sh https://raw.githubusercontent.com/wp-cli/wp-cli-bundle/main/utils/wp-cli-updatedeb.sh
|
|
|
|
- name: Build DEB package
|
|
run: |
|
|
bash wp-cli-updatedeb.sh
|
|
|
|
- name: Verify built DEB package contents
|
|
run: |
|
|
ls .
|
|
|
|
- name: Copy DEB package into builds folder
|
|
run: |
|
|
cp -n php-wpcli*all.deb deb
|
|
|
|
- name: Commit files
|
|
run: |
|
|
git config --local user.email "action@github.com"
|
|
git config --local user.name "GitHub Action"
|
|
git add deb
|
|
git commit -m "deb build: $GITHUB_REPOSITORY@$GITHUB_SHA"
|
|
|
|
- name: Push changes
|
|
uses: ad-m/github-push-action@master
|
|
with:
|
|
github_token: ${{ secrets.ACTIONS_BOT }}
|
|
branch: gh-pages
|
|
repository: wp-cli/builds
|