diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 4412ed0b..da4ae9dd 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -213,7 +213,7 @@ jobs:
if: ${{ steps.check_version_updated.outputs.updated == 'true'}}
uses: mathieudutour/github-tag-action@v6.1
with:
- github_token: ${{ secrets.GITHUB_TOKEN }}
+ github_token: ${{ secrets.PAT_MGOERENS }}
custom_tag: ${{ steps.check_version_in_PR.outputs.PR_version }}
tag_prefix: ""
commit_sha: ${{ steps.master_sha.outputs.origin_master_sha }}
@@ -252,4 +252,4 @@ jobs:
imageReference=quay.io/redhat-certification/chart-verifier
podman pull ${imageReference}:${{ steps.check_version_in_PR.outputs.PR_version }}
podman tag ${imageReference}:${{ steps.check_version_in_PR.outputs.PR_version }} ${imageReference}:latest
- podman push ${imageReference}:latest
\ No newline at end of file
+ podman push ${imageReference}:latest
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index ada97558..0a2bbe8f 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -3,30 +3,44 @@ name: create release on new tags
on:
push:
# Publish semver tags as releases.
- tags: [ '*.*.*' ]
- # [0-9]+.[0-9]+.[0-9]+
+ tags: '[0-9]+.[0-9]+.[0-9]+'
jobs:
- build-and-push:
-
+ build-and-release:
+ name: Create GitHub release
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
+ - name: Setup Go
+ uses: actions/setup-go@v4
+ with:
+ go-version-file: go.mod
+
+ - name: Print tag to GITHUB_OUTPUT
+ id: get_tag
+ run: |
+ echo "release_version=${GITHUB_REF#refs/*/}" | tee -a $GITHUB_OUTPUT
+
- name: Build binary and make tarball
id: build_bin
run: |
make bin
- tar -zcvf chart-verifier.tgz -C out/ chart-verifier
- export TARBALL_PATH=$(realpath chart-verifier.tgz)
- echo "tarball_path=$TARBALL_PATH"
+ TARBALL_NAME="chart-verifier.tgz-${{ steps.get_tag.outputs.release_version }}.tgz"
+ tar -zcvf $TARBALL_NAME -C out/ chart-verifier
+ export TARBALL_PATH=$(realpath $TARBALL_NAME)
+ echo "tarball_path=$TARBALL_PATH" | tee -a $GITHUB_OUTPUT
- - name: Print tag to GITHUB_OUTPUT
- id: get_tag
+ - name: Check that the tag matches the current version
+ id: check_tag_and_version
run: |
- echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
+ release_version=${{ steps.get_tag.outputs.release_version }}
+ bin_version=$(out/chart-verifier version --as-data | jq -r .version)
+ if [[ "$release_version" != "$bin_version" ]]; then
+ echo "Binary version ($bin_version) doesn't match tag ($release_version)" && exit 1
+ fi
- name: Set up Python 3.x
uses: actions/setup-python@v2
@@ -42,14 +56,14 @@ jobs:
- name: Generate release body
id: release_body
- run: ve1/bin/print-release-body
+ run: echo "release_body=$(ve1/bin/print-release-body)" | tee -a $GITHUB_OUTPUT
- name: Create the the release
id: create_release
uses: softprops/action-gh-release@v1
with:
- tag_name: ${{ steps.get_tag.outputs.RELEASE_VERSION }}
- body: ${{ steps.release_body.outputs.PR_release_body }}
+ tag_name: ${{ steps.get_tag.outputs.release_version }}
+ body: ${{ steps.release_body.outputs.release_body }}
files: ${{ steps.build_bin.outputs.tarball_path }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/scripts/src/release/releasebody.py b/scripts/src/release/releasebody.py
index 0a9890ae..b9b4c7ef 100644
--- a/scripts/src/release/releasebody.py
+++ b/scripts/src/release/releasebody.py
@@ -4,7 +4,8 @@
from release import releasechecker
from utils import utils
-def make_release_body(version, image_name, release_info):
+def get_release_body(version, image_name, release_info):
+ """Generate the body of the GitHub release"""
body = f"Chart verifier version {version}
Docker Image:
- {image_name}:{version}
"
body += "This version includes:
"
for info in release_info:
@@ -12,14 +13,9 @@ def make_release_body(version, image_name, release_info):
body += info
else:
body += f"- {info}
"
-
- print(f"[INFO] Release body: {body}")
- utils.add_output("PR_release_body",body)
+ return body
def main():
version_info = releasechecker.get_version_info()
- make_release_body(version_info["version"],version_info["quay-image"],version_info["release-info"])
- # tarfile = create(args.release)
- # print(f'[INFO] Verifier tarball created : {tarfile}.')
- # utils.add_output("tarball_full_name",tarfile)
-
+ release_body = get_release_body(version_info["version"],version_info["quay-image"],version_info["release-info"])
+ print(release_body)
diff --git a/scripts/src/release/releasechecker.py b/scripts/src/release/releasechecker.py
index a98189eb..c8152f90 100644
--- a/scripts/src/release/releasechecker.py
+++ b/scripts/src/release/releasechecker.py
@@ -99,7 +99,8 @@ def main():
utils.add_output("PR_release_image",version_info["quay-image"])
utils.add_output("PR_release_info",version_info["release-info"])
utils.add_output("PR_includes_release","true")
- releasebody.make_release_body(version_info["version"],version_info["quay-image"],version_info["release-info"])
+ release_body = releasebody.get_release_body(version_info["version"],version_info["quay-image"],version_info["release-info"])
+ utils.add_output("PR_release_body",release_body)
else:
version_info = get_version_info()
if args.version: