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