Skip to content

Implement rfc6587 auto detection #277

Implement rfc6587 auto detection

Implement rfc6587 auto detection #277

Workflow file for this run

###########################################################################################################
#
# 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}"