Files
laps/.gitea/workflows/release.yaml
T
sandros d70baec3ec
Tests / tests (push) Failing after 6s
Add Gitea release asset workflow
2026-09-26 22:58:43 +02:00

63 lines
2.1 KiB
YAML

name: Release
on:
release:
types: [ published ]
push:
tags:
- '*'
jobs:
upload-asset:
runs-on: ubuntu-latest
container:
image: php:7.4-cli
steps:
- name: Install system dependencies
run: |
apt-get update -qq
apt-get install -y -qq git unzip zip curl jq
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
- uses: actions/checkout@v3
- name: Build release zip
run: |
mkdir -p release/laps
git archive HEAD | tar -x -C release/laps
cd release/laps
composer config platform.php 7.4
composer remove composer/installers --no-update
composer update --no-dev --optimize-autoloader
cd ..
zip -q -r laps.zip laps
rm -rf laps
- name: Upload zip to Gitea Release
env:
GITEA_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITEA_URL: ${{ github.server_url }}
REPO: ${{ github.repository }}
TAG: ${{ github.ref_name }}
run: |
RELEASE_JSON=$(curl -s -H "Authorization: token $GITEA_TOKEN" "$GITEA_URL/api/v1/repos/$REPO/releases/tags/$TAG")
RELEASE_ID=$(echo "$RELEASE_JSON" | jq -r .id)
if [ "$RELEASE_ID" = "null" ] || [ -z "$RELEASE_ID" ]; then
echo "Creating release for tag $TAG..."
CREATE_RES=$(curl -s -X POST \
-H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"tag_name\":\"$TAG\",\"name\":\"$TAG\",\"body\":\"Release $TAG\"}" \
"$GITEA_URL/api/v1/repos/$REPO/releases")
RELEASE_ID=$(echo "$CREATE_RES" | jq -r .id)
fi
echo "Uploading laps.zip to release ID $RELEASE_ID..."
curl -s -X POST \
-H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: multipart/form-data" \
-F "attachment=@release/laps.zip" \
"$GITEA_URL/api/v1/repos/$REPO/releases/$RELEASE_ID/assets?name=laps.zip"