-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'minor-next' of github.com:pmmp/PocketMine-MP into fix/t…
…ask-types
- Loading branch information
Showing
278 changed files
with
10,687 additions
and
4,428 deletions.
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 |
---|---|---|
@@ -0,0 +1 @@ | ||
* @pmmp/server-developers |
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,40 +1,32 @@ | ||
## Introduction | ||
<!-- Summarize your PR here. Keep it short and simple. --> | ||
<!-- Explain existing problems or why this pull request is necessary --> | ||
|
||
### Relevant issues | ||
<!-- List relevant issues here --> | ||
### Related issues & PRs | ||
<!-- | ||
* Fixes #1 | ||
* Fixes #2 | ||
* Related to #2 | ||
--> | ||
|
||
## Changes | ||
### API changes | ||
<!-- Any additions to the API that should be documented in release notes? --> | ||
<!-- If not, you can delete this section --> | ||
|
||
### Behavioural changes | ||
<!-- Any change in how the server behaves, or its performance? --> | ||
<!-- If not, you can delete this section --> | ||
|
||
## Backwards compatibility | ||
<!-- Any possible backwards incompatible changes? How are they solved, or how can they be solved? --> | ||
<!-- If not, you can delete this section --> | ||
|
||
## Follow-up | ||
<!-- Suggest any actions to be done before/after merging this pull request --> | ||
<!-- | ||
Requires translations: | ||
| Name | Value in eng.ini | | ||
| :--: | :---: | | ||
| `foo.bar` | `Foo bar` | | ||
--> | ||
<!-- For example, future changes that this PR lays the groundwork for --> | ||
|
||
## Tests | ||
<!-- | ||
Details should be provided of tests done. Simply saying "tested" or equivalent is not acceptable. | ||
Attach scripts or actions to test this pull request, as well as the result | ||
If this PR affects gameplay or user experience in some way, it must be manually tested. | ||
Include any screenshots or videos of manual testing here. | ||
Any test plugin code should also be pasted here if it can't be adapted to a PHPUnit test. | ||
--> |
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
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,65 @@ | ||
name: Draft release from PR | ||
|
||
on: | ||
#presume that pull_request_target is safe at this point, since the PR was approved and merged | ||
#we need write access to prepare the release & create comments | ||
pull_request_target: | ||
types: | ||
- closed | ||
branches: | ||
- stable | ||
- minor-next | ||
- major-next | ||
- "legacy/*" | ||
paths: | ||
- "src/VersionInfo.php" | ||
|
||
jobs: | ||
check: | ||
name: Check release | ||
uses: ./.github/workflows/draft-release-pr-check.yml | ||
|
||
draft: | ||
name: Create GitHub draft release | ||
needs: [check] | ||
if: needs.check.outputs.valid == 'true' | ||
|
||
uses: ./.github/workflows/draft-release.yml | ||
|
||
post-draft-url-comment: | ||
name: Post draft release URL as comment | ||
needs: [draft] | ||
|
||
runs-on: ubuntu-20.04 | ||
|
||
steps: | ||
- name: Post draft release URL on PR | ||
uses: thollander/actions-comment-pull-request@v3 | ||
with: | ||
message: "[Draft release ${{ needs.draft.outputs.version }}](${{ needs.draft.outputs.draft-url }}) has been created for commit ${{ github.sha }}. Please review and publish it." | ||
|
||
trigger-post-release-workflow: | ||
name: Trigger post-release RestrictedActions workflow | ||
# Not sure if needs is actually needed here | ||
needs: [check] | ||
if: needs.check.outputs.valid == 'true' | ||
|
||
runs-on: ubuntu-20.04 | ||
|
||
steps: | ||
- name: Generate access token | ||
id: generate-token | ||
uses: actions/create-github-app-token@v1 | ||
with: | ||
app-id: ${{ vars.RESTRICTED_ACTIONS_DISPATCH_ID }} | ||
private-key: ${{ secrets.RESTRICTED_ACTIONS_DISPATCH_KEY }} | ||
owner: ${{ github.repository_owner }} | ||
repositories: RestrictedActions | ||
|
||
- name: Dispatch post-release restricted action | ||
uses: peter-evans/repository-dispatch@v3 | ||
with: | ||
token: ${{ steps.generate-token.outputs.token }} | ||
repository: ${{ github.repository_owner }}/RestrictedActions | ||
event-type: pocketmine_mp_post_release | ||
client-payload: '{"branch": "${{ github.ref }}"}' |
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,13 @@ | ||
#Allows creating a release by pushing a tag | ||
#This might be useful for retroactive releases | ||
name: Draft release from git tag | ||
|
||
on: | ||
push: | ||
tags: "*" | ||
|
||
jobs: | ||
draft: | ||
name: Create GitHub draft release | ||
if: "startsWith(github.event.head_commit.message, 'Release ')" | ||
uses: ./.github/workflows/draft-release.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,111 @@ | ||
name: Release PR checks | ||
|
||
on: | ||
#do checks on every PR update | ||
pull_request: | ||
branches: | ||
- stable | ||
- minor-next | ||
- major-next | ||
- "legacy/*" | ||
paths: | ||
- "src/VersionInfo.php" | ||
|
||
#allow this workflow to be invoked on PR merge, prior to creating the release | ||
workflow_call: | ||
outputs: | ||
valid: | ||
description: Whether this commit is valid for release | ||
value: ${{ jobs.check-intent.outputs.valid && jobs.check-validity.result == 'success' }} | ||
|
||
permissions: | ||
contents: read #for user access check | ||
|
||
jobs: | ||
check-intent: | ||
name: Check release trigger | ||
runs-on: ubuntu-20.04 | ||
|
||
outputs: | ||
valid: ${{ steps.validate.outputs.DEV_BUILD == 'false' }} | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Check IS_DEVELOPMENT_BUILD flag | ||
id: validate | ||
run: | | ||
echo DEV_BUILD=$(sed -n "s/^\s*public const IS_DEVELOPMENT_BUILD = \(true\|false\);$/\1/p" src/VersionInfo.php) >> $GITHUB_OUTPUT | ||
check-validity: | ||
name: Validate release info | ||
needs: [check-intent] | ||
#don't do these checks if this isn't a release - we don't want to generate unnecessary failed statuses | ||
if: needs.check-intent.outputs.valid == 'true' | ||
|
||
runs-on: ubuntu-20.04 | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Setup PHP | ||
uses: shivammathur/[email protected] | ||
with: | ||
php-version: 8.2 | ||
|
||
- name: Restore Composer package cache | ||
uses: actions/cache@v4 | ||
with: | ||
path: | | ||
~/.cache/composer/files | ||
~/.cache/composer/vcs | ||
key: "composer-v2-cache-${{ hashFiles('./composer.lock') }}" | ||
restore-keys: | | ||
composer-v2-cache- | ||
- name: Install Composer dependencies | ||
run: composer install --no-dev --prefer-dist --no-interaction --ignore-platform-reqs | ||
|
||
- name: Check author permissions | ||
id: check-permission | ||
uses: actions-cool/check-user-permission@v2 | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
require: write | ||
username: ${{ github.event.pull_request.user.login }} | ||
#technically this would be fine for dependabot but generally bots don't count as team members | ||
check-bot: true | ||
|
||
- name: Abort if user permissions are insufficient | ||
#user doesn't have permission or is a bot | ||
if: steps.check-permission.outputs.require-result != 'true' || steps.check-permission.outputs.check-result != 'false' | ||
run: | | ||
echo "::error::This user is not authorized to trigger releases" | ||
exit 1 | ||
- name: Check changelog file is present | ||
id: file-presence | ||
run: | | ||
CHANGELOG_FILE="changelogs/$(php build/dump-version-info.php changelog_file_name)" | ||
if [ ! -f "${{ github.workspace }}/$CHANGELOG_FILE" ]; then | ||
echo "::error::$CHANGELOG_FILE does not exist" | ||
exit 1 | ||
fi | ||
echo FILE="$CHANGELOG_FILE" >> $GITHUB_OUTPUT | ||
- name: Check header is present in changelog file | ||
run: | | ||
FILE="${{ steps.file-presence.outputs.FILE }}" | ||
VERSION="$(php build/dump-version-info.php base_version)" | ||
if ! grep -Fqx "# $VERSION" "${{ github.workspace }}/$FILE"; then | ||
echo "::error::Header for $VERSION not found in $FILE" | ||
exit 1 | ||
fi | ||
- name: Check version is valid for the selected channel | ||
run: | | ||
CHANNEL="$(php build/dump-version-info.php channel)" | ||
if [ "$(php build/dump-version-info.php suffix_valid)" != "true" ]; then | ||
echo "::error::Version $(php build/dump-version-info.php base_version) is not allowed on the $CHANNEL channel" | ||
exit 1 | ||
fi |
Oops, something went wrong.