diff --git a/.github/workflows/build-docker-image.yml b/.github/workflows/build-docker-image.yml index a3921f820..9319f9e2f 100644 --- a/.github/workflows/build-docker-image.yml +++ b/.github/workflows/build-docker-image.yml @@ -4,6 +4,11 @@ on: release: types: - published + workflow_dispatch: + inputs: + release: + description: 'Tag name to build' + required: true jobs: build: @@ -33,11 +38,23 @@ jobs: repository: pmmp/PocketMine-Docker fetch-depth: 1 - - name: Get tag names + + - name: Get tag name id: tag-name run: | - VERSION=$(echo "${{ github.ref }}" | sed 's{^refs/tags/{{') - echo TAG_NAME=$VERSION >> $GITHUB_OUTPUT + if [[ "${{ github.event_name }}" == "release" ]]; then + echo TAG_NAME="${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT + elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then + echo TAG_NAME="${{ github.event.inputs.release }}" >> $GITHUB_OUTPUT + else + echo "Unsupported event type: ${{ github.event_name }}" + exit 1 + fi + + - name: Parse version + id: version + run: | + VERSION="${{ steps.tag-name.outputs.TAG_NAME }}" echo MAJOR=$(echo $VERSION | cut -d. -f1) >> $GITHUB_OUTPUT echo MINOR=$(echo $VERSION | cut -d. -f1-2) >> $GITHUB_OUTPUT @@ -71,8 +88,8 @@ jobs: push: true context: ./pocketmine-mp tags: | - ${{ steps.docker-repo-name.outputs.NAME }}:${{ steps.tag-name.outputs.MAJOR }} - ghcr.io/${{ steps.docker-repo-name.outputs.NAME }}:${{ steps.tag-name.outputs.MAJOR }} + ${{ steps.docker-repo-name.outputs.NAME }}:${{ steps.version.outputs.MAJOR }} + ghcr.io/${{ steps.docker-repo-name.outputs.NAME }}:${{ steps.version.outputs.MAJOR }} build-args: | PMMP_TAG=${{ steps.tag-name.outputs.TAG_NAME }} PMMP_REPO=${{ github.repository }} @@ -84,8 +101,8 @@ jobs: push: true context: ./pocketmine-mp tags: | - ${{ steps.docker-repo-name.outputs.NAME }}:${{ steps.tag-name.outputs.MINOR }} - ghcr.io/${{ steps.docker-repo-name.outputs.NAME }}:${{ steps.tag-name.outputs.MINOR }} + ${{ steps.docker-repo-name.outputs.NAME }}:${{ steps.version.outputs.MINOR }} + ghcr.io/${{ steps.docker-repo-name.outputs.NAME }}:${{ steps.version.outputs.MINOR }} build-args: | PMMP_TAG=${{ steps.tag-name.outputs.TAG_NAME }} PMMP_REPO=${{ github.repository }} diff --git a/.github/workflows/discord-release-notify.yml b/.github/workflows/discord-release-notify.yml index 906f227ea..697b6358b 100644 --- a/.github/workflows/discord-release-notify.yml +++ b/.github/workflows/discord-release-notify.yml @@ -4,6 +4,11 @@ on: release: types: - published + workflow_dispatch: + inputs: + release: + description: 'Release to make notification for' + required: true jobs: build: @@ -30,9 +35,17 @@ jobs: - name: Install Composer dependencies run: composer install --no-dev --prefer-dist --no-interaction --ignore-platform-reqs - - name: Get actual tag name + - name: Get tag name id: tag-name - run: echo TAG_NAME=$(echo "${{ github.ref }}" | sed 's{^refs/tags/{{') >> $GITHUB_OUTPUT + run: | + if [[ "${{ github.event_name }}" == "release" ]]; then + echo TAG_NAME="${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT + elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then + echo TAG_NAME="${{ github.event.inputs.release }}" >> $GITHUB_OUTPUT + else + echo "Unsupported event type: ${{ github.event_name }}" + exit 1 + fi - name: Run webhook post script run: php .github/workflows/discord-release-embed.php ${{ github.repository }} ${{ steps.tag-name.outputs.TAG_NAME }} ${{ github.token }} ${{ secrets.DISCORD_RELEASE_WEBHOOK }} ${{ secrets.DISCORD_NEWS_PING_ROLE_ID }} diff --git a/.github/workflows/update-updater-api.yml b/.github/workflows/update-updater-api.yml index 3f42062fd..031950ba8 100644 --- a/.github/workflows/update-updater-api.yml +++ b/.github/workflows/update-updater-api.yml @@ -4,6 +4,11 @@ on: release: types: - published + workflow_dispatch: + inputs: + release: + description: 'Release to publish info for' + required: true jobs: build: @@ -19,9 +24,17 @@ jobs: repository: ${{ github.repository_owner }}/update.pmmp.io ssh-key: ${{ secrets.UPDATE_PMMP_IO_DEPLOY_KEY }} - - name: Get actual tag name + - name: Get tag name id: tag-name - run: echo TAG_NAME=$(echo "${{ github.ref }}" | sed 's{^refs/tags/{{') >> $GITHUB_OUTPUT + run: | + if [[ "${{ github.event_name }}" == "release" ]]; then + echo TAG_NAME="${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT + elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then + echo TAG_NAME="${{ github.event.inputs.release }}" >> $GITHUB_OUTPUT + else + echo "Unsupported event type: ${{ github.event_name }}" + exit 1 + fi - name: Download new release information run: curl -f -L ${{ github.server_url }}/${{ github.repository }}/releases/download/${{ steps.tag-name.outputs.TAG_NAME }}/build_info.json -o new_build_info.json