Skip to content

Release with manage-hc-docker.sh asset #20

Release with manage-hc-docker.sh asset

Release with manage-hc-docker.sh asset #20

Workflow file for this run

name: Release with manage-hc-docker.sh asset
on:
workflow_dispatch:
inputs:
tag_name:
description: 'Tag name (e.g., v0.0.1)'
required: true
default: 'v0.0.0'
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write # Required to create releases
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Prepare assets
run: |
# Define asset names with the tag
TAG="${{ github.event.inputs.tag_name }}"
HC_TAG=${TAG%.*}
HC_TAG=${HC_TAG#v}
HC_TAG=${HC_TAG#V}
REF="${{ github.ref_name }}"
MGR_NAME="manage-hc-docker-$TAG.sh"
# create a manager with version in the name and file
sed "s/^\(HC_MANAGER_VERSION=\).*$/\1$TAG/" ./docker/manage-hc-docker.sh \
> "./docker/$MGR_NAME"
# add version artifact
echo "TAG=$TAG" > VERSION.txt
# update version in HC source
sed -i 's/\(hc_version = "\)[0-9.]\+/\1'$HC_TAG'/' ESPHamClock/version.cpp
# create the tars and zips
mkdir dist
tar -czf "dist/HC-$TAG.tar.gz" --exclude=dist .
zip -r "dist/HC-$TAG.zip" . -x "dist/*"
# zip file for HamClock upgrades
zip -r "dist/ESPHamClock-V$HC_TAG.zip" ESPHamClock -x "dist/*"
zip -r "dist/hamclock-contrib-V$HC_TAG.zip" hamclock-contrib -x "dist/*"
- name: Create Release and Upload Asset
env:
GH_TOKEN: ${{ github.token }}
run: |
TAG="${{ github.event.inputs.tag_name }}"
HC_TAG=${TAG%.*}
HC_TAG=${HC_TAG#v}
HC_TAG=${HC_TAG#V}
# Grabs file from repo tree and uploads with a label
gh release create $TAG \
"./docker/manage-hc-docker-$TAG.sh#Manage HamClock Docker Installs" \
"dist/ESPHamClock-V$HC_TAG.zip#HamClock Source Zip with version" \
"dist/hamclock-contrib.zip#HamClock 3rd party contributions" \
--title "HamClock Release: $TAG" \
--generate-notes