Implement rfc6587 auto detection #277
Workflow file for this run
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/axoflow/axosyslog/releases, | |
# double check the generated draft release, and manually release it. | |
# | |
########################################################################################################### | |
name: Draft release | |
permissions: write-all | |
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 }}/axosyslog/actions/runs/${{ github.run_id }} | |
RELEASES_URL: https://github.com/${{ github.repository_owner }}/axosyslog/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 AxoSyslog source | |
uses: actions/checkout@v4 | |
- 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.txt` | |
RELEASE_TAG=axosyslog-$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@v4 | |
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: | |
r2-access-key: ${{ secrets.R2_ACCESS_KEY }} | |
r2-secret-key: ${{ secrets.R2_SECRET_KEY }} | |
r2-account-id: ${{ secrets.R2_ACCOUNT_ID }} | |
create-draft-release: | |
runs-on: ubuntu-latest | |
needs: [create-release-tarball, create-packages] # TODO replace with upload-packages | |
steps: | |
- name: Checkout AxoSyslog source | |
uses: actions/checkout@v4 | |
- name: Download release tarball artifact | |
uses: actions/download-artifact@v4 | |
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}" |