Skip to content

Port windows-compile-vs to PowerShell #408

Port windows-compile-vs to PowerShell

Port windows-compile-vs to PowerShell #408

Workflow file for this run

name: Build and publish PHP binaries
on:
push:
branches: "**"
tags-ignore: "php-**"
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
all-builds:
name: PM${{ matrix.pm-version-major }}
strategy:
matrix:
pm-version-major: [5]
uses: ./.github/workflows/main-pm-matrix.yml
with:
pm-version-major: ${{ matrix.pm-version-major }}
secrets: inherit
publish:
name: Publish binaries
needs: [all-builds]
runs-on: ubuntu-20.04
if: ${{ startsWith(github.ref_name, 'php/') && github.ref_type == 'branch' && !contains(github.event.head_commit.message, '[no release]') }}
steps:
- uses: actions/checkout@v4
- name: Set version information
id: version
run: |
echo PHP_VERSION=$(echo ${{ github.ref_name }} | cut -d / -f2) >> $GITHUB_OUTPUT
- name: Update latest tag target
run: |
git tag -f php-${{ steps.version.outputs.PHP_VERSION }}-latest
git push -f origin php-${{ steps.version.outputs.PHP_VERSION }}-latest
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: ${{ github.workspace }}
- name: Generate release notes
run: |
echo "Last updated on **$(date -u +'%d %b %Y at %H:%M:%S %Z')**" > changelog.md
echo -e "\n\n" >> changelog.md
echo "Built by: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" >> changelog.md
echo "Build number: ${{ github.run_number }}" >> changelog.md
if [[ "${{ github.ref_name }}" != "${{ github.event.repository.default_branch }}" ]]; then
echo -e "\n\n\n" >> changelog.md
if [[ "${{ github.ref_name }}" == *"preview" ]]; then
echo "# :warning: :radioactive: EXPERIMENTAL!!! :radioactive: :warning:" >> changelog.md
echo "### Your server and/or plugins may crash or misbehave with this release!" >> changelog.md
echo "### Consider downloading the [recommended release](${{ github.server_url }}/${{ github.repository }}/releases/latest) instead." >> changelog.md
else
echo ":warning: WARNING! :warning:" >> changelog.md
echo "Some plugins might not work properly on this version yet." >> changelog.md
echo "If you have problems, try the [recommended release](${{ github.server_url }}/${{ github.repository }}/releases/latest) instead." >> changelog.md
fi
else
echo ":white_check_mark: This version is recommended for production servers." >> changelog.md
fi
echo -e "\n\n\n" >> changelog.md
echo ":information_source: **Linux/MacOS users**: Please see [this page](https://doc.pmmp.io/en/rtfd/faq/installation/opcache.so.html) to fix extension loading errors. Also, check out the [PocketMine-MP Linux/MacOS installer](https://doc.pmmp.io/en/rtfd/installation/get-dot-pmmp-dot-io.html)." >> changelog.md
- name: Get date
id: date
run: |
echo DATE=$(date -u +'%d %b %Y') >> $GITHUB_OUTPUT
- name: Update latest branch release
uses: ncipollo/release-action@v1.14.0
with:
artifacts: |
${{ github.workspace }}/Linux-PM*/*.tar.gz
${{ github.workspace }}/MacOS-*-PM*/*.tar.gz
${{ github.workspace }}/Windows-PM*/*.zip
${{ github.workspace }}/Windows-PM*/*.exe
makeLatest: ${{ github.ref_name == github.event.repository.default_branch }}
name: PHP ${{ steps.version.outputs.PHP_VERSION }} - Latest (${{ steps.date.outputs.DATE }})
tag: php-${{ steps.version.outputs.PHP_VERSION }}-latest
commit: ${{ github.sha }}
allowUpdates: true
bodyFile: ${{ github.workspace }}/changelog.md
removeArtifacts: true
prerelease: ${{ endsWith(github.ref_name, '-preview') }}
- name: Publish unique release
uses: ncipollo/release-action@v1.14.0
with:
artifacts: |
${{ github.workspace }}/Linux-PM*/*.tar.gz
${{ github.workspace }}/MacOS-*-PM*/*.tar.gz
${{ github.workspace }}/Windows-PM*/*.zip
${{ github.workspace }}/Windows-PM*/*.exe
makeLatest: false
name: PHP ${{ steps.version.outputs.PHP_VERSION }} (Build ${{ github.run_number }})
tag: php-${{ steps.version.outputs.PHP_VERSION }}-build-${{ github.run_number }}
commit: ${{ github.sha }}
bodyFile: ${{ github.workspace }}/changelog.md
prerelease: ${{ endsWith(github.ref_name, '-preview') }}