From d773d9b48b75d2940b910d1d24ee8d4e542af826 Mon Sep 17 00:00:00 2001 From: johngribbin <30157175+johngribbin@users.noreply.github.com> Date: Tue, 19 Nov 2024 08:14:40 +0000 Subject: [PATCH] enh: add release service --- .../{startos-sdk.yml => buildService.yml} | 0 .github/workflows/releaseService.yml | 72 +++++++++++++++++++ 2 files changed, 72 insertions(+) rename .github/workflows/{startos-sdk.yml => buildService.yml} (100%) create mode 100644 .github/workflows/releaseService.yml diff --git a/.github/workflows/startos-sdk.yml b/.github/workflows/buildService.yml similarity index 100% rename from .github/workflows/startos-sdk.yml rename to .github/workflows/buildService.yml diff --git a/.github/workflows/releaseService.yml b/.github/workflows/releaseService.yml new file mode 100644 index 0000000..012f624 --- /dev/null +++ b/.github/workflows/releaseService.yml @@ -0,0 +1,72 @@ +name: Release Service + +on: + push: + tags: + - "v*.*" + +jobs: + ReleasePackage: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Prepare StartOS SDK + uses: Start9Labs/sdk@v1 + + - name: Checkout services repository + uses: actions/checkout@v4 + + - name: Build the service package + run: | + git submodule update --init --recursive + start-sdk init + make + + - name: Setting package ID and title from the manifest + id: package + run: | + echo "package_id=$(yq -oy ".id" manifest.*)" >> $GITHUB_ENV + echo "package_title=$(yq -oy ".title" manifest.*)" >> $GITHUB_ENV + shell: bash + + - name: Generate sha256 checksum + run: | + PACKAGE_ID=${{ env.package_id }} + printf "\n SHA256SUM: $(sha256sum ${PACKAGE_ID}.s9pk) \n" + sha256sum ${PACKAGE_ID}.s9pk > ${PACKAGE_ID}.s9pk.sha256 + shell: bash + + - name: Generate changelog + run: | + PACKAGE_ID=${{ env.package_id }} + echo "## What's Changed" > change-log.txt + yq -oy '.release-notes' manifest.* >> change-log.txt + echo "## SHA256 Hash" >> change-log.txt + echo '```' >> change-log.txt + sha256sum ${PACKAGE_ID}.s9pk >> change-log.txt + echo '```' >> change-log.txt + shell: bash + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ github.ref_name }} + name: ${{ env.package_title }} ${{ github.ref_name }} + prerelease: true + body_path: change-log.txt + files: | + ./${{ env.package_id }}.s9pk + ./${{ env.package_id }}.s9pk.sha256 + + - name: Publish to Registry + env: + S9USER: ${{ secrets.S9USER }} + S9PASS: ${{ secrets.S9PASS }} + S9REGISTRY: ${{ secrets.S9REGISTRY }} + run: | + if [[ -z "$S9USER" || -z "$S9PASS" || -z "$S9REGISTRY" ]]; then + echo "Publish skipped: missing registry credentials." + else + start-sdk publish https://$S9USER:$S9PASS@$S9REGISTRY ${{ env.package_id }}.s9pk + fi