Auf neuen Release Workflow umgestellt
All checks were successful
Release Plugin / release (push) Successful in 3s
All checks were successful
Release Plugin / release (push) Successful in 3s
This commit is contained in:
133
.gitea/workflows/release.yaml
Normal file
133
.gitea/workflows/release.yaml
Normal file
@@ -0,0 +1,133 @@
|
||||
name: Release Plugin
|
||||
run-name: "Release | ${{ github.ref_name }}"
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: alpine-latest
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
steps:
|
||||
- name: Notwendige Abhängigkeiten installieren
|
||||
shell: sh
|
||||
run: |
|
||||
apk add --no-cache bash git jq curl
|
||||
|
||||
- name: Code holen
|
||||
run: |
|
||||
REPO_URL="https://${RELEASE_TOKEN}:x-oauth-basic@${{ vars.RELEASE_URL }}/${GITHUB_REPOSITORY}.git"
|
||||
|
||||
git clone "$REPO_URL" repo
|
||||
cd repo
|
||||
|
||||
git checkout "$TAG"
|
||||
env:
|
||||
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
||||
TAG: "${{ github.ref_name }}"
|
||||
|
||||
- name: Version und Kanal bestimmen
|
||||
id: releaseinfo
|
||||
run: |
|
||||
TAG="${{ github.ref_name }}"
|
||||
RAW_VERSION="${TAG#v}"
|
||||
VERSION="${RAW_VERSION%%-*}"
|
||||
|
||||
# Channel und Suffix automatisch bestimmen anhand des Tag-Suffix
|
||||
case "$RAW_VERSION" in
|
||||
*-testing*|*-t|*-T)
|
||||
CHANNEL="testing"
|
||||
PRERELEASE="true"
|
||||
SUFFIX="-testing"
|
||||
;;
|
||||
*-unstable*|*-u|*-U)
|
||||
CHANNEL="unstable"
|
||||
PRERELEASE="true"
|
||||
SUFFIX="-unstable"
|
||||
;;
|
||||
*)
|
||||
CHANNEL="stable"
|
||||
PRERELEASE="false"
|
||||
SUFFIX=""
|
||||
;;
|
||||
esac
|
||||
|
||||
# Output setzen
|
||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||
echo "channel=$CHANNEL" >> $GITHUB_OUTPUT
|
||||
echo "prerelease=$PRERELEASE" >> $GITHUB_OUTPUT
|
||||
|
||||
# Optional Debug
|
||||
echo "VERSION=$VERSION"
|
||||
echo "CHANNEL=$CHANNEL"
|
||||
echo "PRERELEASE=$PRERELEASE"
|
||||
|
||||
# - name: plugin.cfg einlesen
|
||||
# id: config
|
||||
# run: |
|
||||
# cd repo
|
||||
# while read -r line || [ -n "$line" ]; do
|
||||
# key="${line%%=*}"
|
||||
# value="${line#*=}"
|
||||
# echo "$key=$value" >> $GITHUB_OUTPUT
|
||||
# done < plugin.cfg
|
||||
|
||||
- name: Payload erzeugen
|
||||
id: payload
|
||||
run: |
|
||||
cd repo
|
||||
|
||||
NAME="${GITHUB_REPOSITORY##*/}"
|
||||
GROUP="${GITHUB_REPOSITORY%%/*}"
|
||||
VERSION="${{ steps.releaseinfo.outputs.version }}"
|
||||
CHANNEL="${{ steps.releaseinfo.outputs.channel }}"
|
||||
PRERELEASE="${{ steps.releaseinfo.outputs.prerelease }}"
|
||||
ZIP_FOLDER="${{ vars.ZIP_FOLDER }}"
|
||||
ZIP_FILE="${ZIP_FOLDER}.zip"
|
||||
TAG="${{ github.ref_name }}"
|
||||
#GIT_URL=${GITHUB_REPOSITORY}
|
||||
|
||||
jq -n \
|
||||
--arg name "$NAME" \
|
||||
--arg group "$GROUP" \
|
||||
--arg version "$VERSION" \
|
||||
--arg channel "$CHANNEL" \
|
||||
--arg prerelease "$PRERELEASE" \
|
||||
--arg zip_folder "$ZIP_FOLDER" \
|
||||
--arg zip_file "$ZIP_FILE" \
|
||||
--arg tag "$TAG" \
|
||||
'{
|
||||
name: $name,
|
||||
group: $group,
|
||||
version: $version,
|
||||
channel: $channel,
|
||||
prerelease: ($prerelease == "true"),
|
||||
zip_folder: $zip_folder,
|
||||
zip_file: $zip_file,
|
||||
tag: $tag
|
||||
}' > payload.json
|
||||
|
||||
cat payload.json
|
||||
|
||||
- name: Repository aktualisieren
|
||||
run: |
|
||||
NAME="${GITHUB_REPOSITORY##*/}"
|
||||
TAG="${{ steps.releaseinfo.outputs.version }}"-"${{ steps.releaseinfo.outputs.channel }}"
|
||||
PAYLOAD_B64=$(base64 -w0 repo/payload.json)
|
||||
|
||||
JSON="{\"ref\":\"hidden/workflows\",\"inputs\":{\"payload\":\"$PAYLOAD_B64\",\"name\":\"$NAME\",\"tag\":\"$TAG\"}}"
|
||||
curl -X POST \
|
||||
-H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "$JSON" \
|
||||
"https://${{ vars.RELEASE_URL }}/api/v1/repos/${OWNER}/Repository/actions/workflows/${WORKFLOW}/dispatches"
|
||||
env:
|
||||
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
||||
OWNER: "AG_QGIS"
|
||||
WORKFLOW: "release.yaml"
|
||||
|
||||
Reference in New Issue
Block a user