Skip to content

Commit

Permalink
tag and create new release in one workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
greensd4 authored Feb 10, 2025
1 parent dda03dc commit 3b6d763
Showing 1 changed file with 46 additions and 33 deletions.
79 changes: 46 additions & 33 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,47 +3,60 @@ name: Publish Checkmarx One CLI GitHub Action

on:
push:
tags:
- '*'
workflow_dispatch:
inputs:
tag:
description: 'Next release tag'
required: true

jobs:
release:
runs-on: ubuntu-latest
outputs:
CLI_VERSION: ${{ steps.extract_cli_version.outputs.CLI_VERSION }}

steps:
- uses: actions/[email protected]
- name: Checkout
uses: actions/[email protected]
with:
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}

- name: Extract CLI version from Dockerfile
id: extract_cli_version
run: |
IMAGE_LINE=$(grep -m 1 '^FROM' Dockerfile)
CLI_VERSION=$(echo "$IMAGE_LINE" | awk -F':' '{print $2}')
echo "Extracted CLI version: $CLI_VERSION"
echo "CLI_VERSION=$CLI_VERSION" >> $GITHUB_ENV
echo "::set-output name=CLI_VERSION::$CLI_VERSION"
- name: Tag
run: |
echo ${{ github.event.inputs.tag }}
echo "NEXT_VERSION=${{ github.event.inputs.tag }}" >> $GITHUB_ENV
tag=${{ github.event.inputs.tag }}
message='${{ github.event.inputs.tag }}: PR #${{ github.event.pull_request.number }} ${{ github.event.pull_request.title }}'
git config user.name "${GITHUB_ACTOR}"
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
git tag -a "${tag}" -m "${message}"
git push origin "${tag}"
- name: Create Release
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 #v1
with:
tag_name: ${{ github.ref_name }}
tag_name: ${{ github.event.inputs.tag }}
generate_release_notes: true

notify:
runs-on: ubuntu-latest
needs: release
steps:
- name: Get latest relase notes
id: release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
body_release="$(gh api -H "Accept: application/vnd.github.v3+json" /repos/Checkmarx/ast-github-action/releases/latest | jq -r '.body' )"
body_release="${body_release//$'\n'/'%0A'}"
echo "::set-output name=body_release::$body_release"
- name: Converts Markdown to HTML
id: convert
uses: lifepal/markdown-to-html@253bbd85fbdeafe2d1f18c1b9289be24e5cf8f8f #v1.2
with:
text: "${{ steps.release.outputs.body_release }}"

- name: Clean html
id: clean
run: |
clean="$(echo "${{ steps.convert.outputs.html }}" | awk '{gsub(/id=.[a-z]+/,"");print}' | tr -d '\n')"
echo "$clean"
echo "::set-output name=clean::$clean"
- name: Send a Notification
id: notify
uses: thechetantalwar/teams-notify@8a78811f5e8f58cdd204efebd79158006428c46b #v2
with:
teams_webhook_url: ${{ secrets.TEAMS_WEBHOOK_URI }}
message: "<h1>Checkmarx One Github Action ${{ github.ref_name }}</h1>${{ steps.clean.outputs.clean }}"
needs: release
uses: Checkmarx/plugins-release-workflow/.github/workflows/release-notify.yml@main
with:
product_name: Github Action
release_version: ${{ github.event.inputs.tag }}
cli_release_version: ${{ needs.release.outputs.CLI_VERSION }}
release_author: "Phoenix Team"
release_url: https://github.com/Checkmarx/ast-github-action/releases/tag/${{ github.event.inputs.tag }}
jira_product_name: GITHUB_ACTION
secrets: inherit

0 comments on commit 3b6d763

Please sign in to comment.