Version: 9.9.9 #8
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 workflow creates a draft release into GitHub's releases section. | |
# | |
# It is automatically started, when a "Version: x.y.z" PR is merged. | |
# Its progress is commented at the "Version: x.y.z" PR. | |
# | |
# The workflow can also be started manually, if necessary. | |
# | |
# When the workflow is finished, one must visit https://github.com/syslog-ng/syslog-ng/releases, | |
# double check the generated draft release, and manually release it. | |
# | |
########################################################################################################### | |
name: Draft release | |
on: | |
workflow_dispatch: | |
pull_request: | |
types: [closed] | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT_FOR_ACTIONS }} | |
WORKFLOW_NAME: "**Draft release** workflow" | |
CURRENT_WORKFLOW_RUN_URL: https://github.com/${{ github.repository_owner }}/syslog-ng/actions/runs/${{ github.run_id }} | |
RELEASES_URL: https://github.com/${{ github.repository_owner }}/syslog-ng/releases | |
jobs: | |
create-release-tarball: | |
runs-on: ubuntu-latest | |
if: (github.event_name == 'workflow_dispatch') || | |
(github.event.pull_request.merged && contains(github.event.pull_request.labels.*.name, 'version-bump')) | |
outputs: | |
RELEASE_TAG: ${{ steps.setup-environment.outputs.RELEASE_TAG }} | |
RELEASE_NAME: ${{ steps.setup-environment.outputs.RELEASE_NAME }} | |
TARBALL_NAME: ${{ steps.setup-environment.outputs.TARBALL_NAME }} | |
steps: | |
- name: Checkout syslog-ng source | |
uses: actions/checkout@v3 | |
- name: "Comment: job started" | |
if: github.event_name == 'pull_request' | |
run: | | |
COMMENT="${WORKFLOW_NAME} started: ${CURRENT_WORKFLOW_RUN_URL}." | |
gh pr comment \ | |
"${{ github.event.number }}" \ | |
--body "${COMMENT}" | |
- name: Setup environment | |
id: setup-environment | |
run: | | |
. .github/workflows/gh-tools.sh | |
VERSION=`cat VERSION` | |
RELEASE_TAG=syslog-ng-$VERSION | |
RELEASE_NAME=${RELEASE_TAG} | |
TARBALL_NAME=${RELEASE_NAME}.tar.gz | |
TARBALL_PATH=dbld/release/${VERSION}/${TARBALL_NAME} | |
gh_export VERSION RELEASE_TAG TARBALL_PATH | |
gh_output RELEASE_TAG RELEASE_NAME TARBALL_NAME | |
- name: "DBLD: release" | |
run: | | |
./dbld/rules release VERSION=${VERSION} | |
- name: Store release tarball as artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: release-tarball | |
path: ${{ env.TARBALL_PATH }} | |
if-no-files-found: error | |
create-packages: | |
needs: create-release-tarball | |
uses: ./.github/workflows/create-packages.yml | |
with: | |
source-tarball-artifact-name: release-tarball | |
dbld-image-mode: build | |
upload-packages: | |
needs: create-packages | |
uses: ./.github/workflows/upload-packages.yml | |
with: | |
pkg-type: stable | |
secrets: | |
azure-sas-token: ${{ secrets.AZURE_SAS_TOKEN }} | |
create-draft-release: | |
runs-on: ubuntu-latest | |
needs: [create-release-tarball, upload-packages] | |
steps: | |
- name: Checkout syslog-ng source | |
uses: actions/checkout@v3 | |
- name: Download release tarball artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: release-tarball | |
- name: Create draft release | |
run: | | |
gh release create \ | |
"${{ needs.create-release-tarball.outputs.RELEASE_TAG }}" \ | |
"${{ needs.create-release-tarball.outputs.TARBALL_NAME }}" \ | |
--draft \ | |
--title "${{ needs.create-release-tarball.outputs.RELEASE_NAME }}" \ | |
--notes-file "NEWS.md" | |
comment-workflow-result: | |
runs-on: ubuntu-latest | |
needs: create-draft-release | |
if: always() && (github.event.pull_request.merged && contains(github.event.pull_request.labels.*.name, 'version-bump')) | |
steps: | |
- name: "Comment: job status" | |
run: | | |
if [[ "${{ needs.create-draft-release.result }}" = "success" ]] | |
then | |
COMMENT="${WORKFLOW_NAME} finished successfully. Please check the Releases page: ${RELEASES_URL}" | |
else | |
COMMENT="${WORKFLOW_NAME} failed." | |
fi | |
gh pr comment \ | |
--repo "${{ github.repository }}" \ | |
"${{ github.event.number }}" \ | |
--body "${COMMENT}" |