name: Pre-Release LinUtil permissions: contents: write # Grant write permissions to contents packages: write # Grant write permissions to packages on: workflow_dispatch: # Manual trigger added workflow_run: workflows: ["LinUtil Release"] types: - completed jobs: build-runspace: runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v4 - name: Extract Version id: extract_version run: | version=$(date +"%Y.%m.%d") echo "version=$version" >> $GITHUB_ENV shell: bash - name: Get Latest Release id: get_latest_release uses: octokit/request-action@v2.x with: route: GET /repos/{owner}/{repo}/releases/latest owner: ${{ github.repository_owner }} repo: ${{ github.event.repository.name }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} continue-on-error: true - name: Generate Release Notes id: generate_notes uses: release-drafter/release-drafter@v5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: config-name: release-drafter.yml version: ${{ env.version }} - name: Prepare Release Body id: prepare_body run: | latest_release_body="${{ fromJson(steps.get_latest_release.outputs.data).body }}" new_changes="${{ steps.generate_notes.outputs.body }}" if [[ -z "$latest_release_body" ]]; then echo "body<> $GITHUB_OUTPUT echo "$new_changes" >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT else echo "body<> $GITHUB_OUTPUT echo "$new_changes" >> $GITHUB_OUTPUT echo "" >> $GITHUB_OUTPUT echo "Previous Release Notes:" >> $GITHUB_OUTPUT echo "$latest_release_body" >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT fi - name: Create and Upload Release id: create_release uses: softprops/action-gh-release@v2 with: tag_name: ${{ env.version }} name: Pre-Release ${{ env.version }} body: | ${{ steps.prepare_body.outputs.body }} ![GitHub Downloads (specific asset, specific tag)](https://img.shields.io/github/downloads/ChrisTitusTech/linutil/${{ env.version }}/linutil) append_body: false files: | ./build/linutil ./start.sh ./startdev.sh prerelease: true env: version: ${{ env.version }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}