From 89e4f1b83d1ac140aedc1f17e350396e7e2c67c5 Mon Sep 17 00:00:00 2001 From: tranch Date: Thu, 20 Aug 2026 07:20:09 +0800 Subject: ci: create GitHub release after image build --- .github/workflows/build.yml | 21 ++++++++++++++ .github/workflows/generate_release.yml | 51 ++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 .github/workflows/generate_release.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 832b9fa..6ff5963 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,6 +8,11 @@ on: #schedule: # - cron: '05 10 * * *' # 10:05am UTC everyday workflow_dispatch: + inputs: + handwritten: + description: "Small changelog about changes in this build" + required: false + type: string env: IMAGE_REGISTRY: "ghcr.io/${{ github.repository_owner }}" # do not edit @@ -20,6 +25,8 @@ jobs: build_push: name: Build and push image runs-on: ubuntu-24.04 + outputs: + release_tag: ${{ steps.gen-version.outputs.release_tag }} permissions: contents: read @@ -105,6 +112,8 @@ jobs: echo "ALIAS_TAGS=${ALIAS_TAGS}" } >> "$GITHUB_ENV" + echo "release_tag=${VERSION_TAG}" >> "$GITHUB_OUTPUT" + - name: Prepare environment run: | # Lowercase the image uri https://github.com/macbre/push-to-ghcr/issues/12 @@ -211,3 +220,15 @@ jobs: DIGEST: ${{ steps.push-image.outputs.digest }} run: | cosign sign -y --key env://COSIGN_PRIVATE_KEY "${IMAGE_REGISTRY}/${IMAGE_NAME}@${DIGEST}" + + generate_release: + name: Generate Release + needs: [build_push] + if: github.event_name != 'pull_request' + permissions: + contents: write + secrets: inherit + uses: ./.github/workflows/generate_release.yml + with: + release_tag: ${{ needs.build_push.outputs.release_tag }} + handwritten: ${{ inputs.handwritten }} diff --git a/.github/workflows/generate_release.yml b/.github/workflows/generate_release.yml new file mode 100644 index 0000000..ff6ef1e --- /dev/null +++ b/.github/workflows/generate_release.yml @@ -0,0 +1,51 @@ +name: Generate Release + +on: + workflow_call: + inputs: + handwritten: + required: false + type: string + release_tag: + required: true + type: string + workflow_dispatch: + inputs: + handwritten: + description: 'Small changelog about changes in this build' + required: false + type: string + release_tag: + required: true + type: string + +permissions: {} + +jobs: + generate-release: + runs-on: ubuntu-24.04 + permissions: + contents: write + + + steps: + - uses: actions/checkout@v7.0.1 + with: + fetch-depth: 50 + + - name: Determine release channel + id: target + run: | + target="${GITHUB_REF_NAME}" + [[ "${target}" == "main" ]] && target="stable" + echo "target=${target}" >> "$GITHUB_OUTPUT" + + - name: Generate release + uses: softprops/action-gh-release@v3.0.2 + with: + tag_name: "${{ inputs.release_tag }}" + name: "AeroCore OS ${{ inputs.release_tag }}" + body: | + ${{ inputs.handwritten }} + prerelease: ${{ steps.target.outputs.target != 'stable' }} + make_latest: ${{ steps.target.outputs.target == 'stable' }} -- cgit v1.2.3