123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- name: Push
- run-name: ${{ github.ref_name }} push run 🚀
- on:
- push:
- branches:
- - master
- - main
- - 'release/**'
- tags:
- - '*'
- permissions:
- contents: write
- jobs:
- check-format:
- name: Check Formatting 🔍
- if: github.ref_name == 'master' || github.ref_name == 'main'
- uses: ./.github/workflows/check-format.yaml
- permissions:
- contents: read
- build-project:
- name: Build Project 🧱
- uses: ./.github/workflows/build-project.yaml
- secrets: inherit
- permissions:
- contents: read
- create-release:
- name: Create Release 🛫
- if: github.ref_type == 'tag'
- runs-on: ubuntu-24.04
- needs: build-project
- defaults:
- run:
- shell: bash
- steps:
- - name: Check Release Tag ☑️
- id: check
- run: |
- : Check Release Tag ☑️
- if [[ "${RUNNER_DEBUG}" ]]; then set -x; fi
- shopt -s extglob
- case "${GITHUB_REF_NAME}" in
- +([0-9]).+([0-9]).+([0-9]) )
- echo 'validTag=true' >> $GITHUB_OUTPUT
- echo 'prerelease=false' >> $GITHUB_OUTPUT
- echo "version=${GITHUB_REF_NAME}" >> $GITHUB_OUTPUT
- ;;
- +([0-9]).+([0-9]).+([0-9])-@(beta|rc)*([0-9]) )
- echo 'validTag=true' >> $GITHUB_OUTPUT
- echo 'prerelease=true' >> $GITHUB_OUTPUT
- echo "version=${GITHUB_REF_NAME}" >> $GITHUB_OUTPUT
- ;;
- *) echo 'validTag=false' >> $GITHUB_OUTPUT ;;
- esac
- - name: Download Build Artifacts 📥
- uses: actions/download-artifact@v4
- if: fromJSON(steps.check.outputs.validTag)
- id: download
- - name: Rename Files 🏷️
- if: fromJSON(steps.check.outputs.validTag)
- run: |
- : Rename Files 🏷️
- if [[ "${RUNNER_DEBUG}" ]]; then set -x; fi
- shopt -s extglob
- shopt -s nullglob
- root_dir="$(pwd)"
- commit_hash="${GITHUB_SHA:0:9}"
- variants=(
- 'windows-x64;zip|exe'
- 'macos-universal;tar.xz|pkg'
- 'ubuntu-24.04-x86_64;tar.xz|deb|ddeb'
- 'sources;tar.xz'
- )
- for variant_data in "${variants[@]}"; do
- IFS=';' read -r variant suffix <<< "${variant_data}"
- candidates=(*-${variant}-${commit_hash}/@(*|*-dbgsym).@(${suffix}))
- for candidate in "${candidates[@]}"; do
- mv "${candidate}" "${root_dir}"
- done
- done
- - name: Generate Checksums 🪪
- if: fromJSON(steps.check.outputs.validTag)
- run: |
- : Generate Checksums 🪪
- if [[ "${RUNNER_DEBUG}" ]]; then set -x; fi
- shopt -s extglob
- echo "### Checksums" > ${{ github.workspace }}/CHECKSUMS.txt
- for file in ${{ github.workspace }}/@(*.exe|*.deb|*.ddeb|*.pkg|*.tar.xz|*.zip); do
- echo " ${file##*/}: $(sha256sum "${file}" | cut -d " " -f 1)" >> ${{ github.workspace }}/CHECKSUMS.txt
- done
- - name: Create Release 🛫
- if: fromJSON(steps.check.outputs.validTag)
- id: create_release
- uses: softprops/action-gh-release@9d7c94cfd0a1f3ed45544c887983e9fa900f0564
- with:
- draft: true
- prerelease: ${{ fromJSON(steps.check.outputs.prerelease) }}
- tag_name: ${{ steps.check.outputs.version }}
- name: ${{ needs.build-project.outputs.pluginName }} ${{ steps.check.outputs.version }}
- body_path: ${{ github.workspace }}/CHECKSUMS.txt
- files: |
- ${{ github.workspace }}/*.exe
- ${{ github.workspace }}/*.zip
- ${{ github.workspace }}/*.pkg
- ${{ github.workspace }}/*.deb
- ${{ github.workspace }}/*.ddeb
- ${{ github.workspace }}/*.tar.xz
|