commit 34782dc3b0250f3b19d185df3c7bf3af2a83f37b Author: foundry <> Date: Wed Jul 15 16:40:29 2026 +0000 Initial commit diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..7f83793 --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,60 @@ +name: Build release archive +run-name: ${{ gitea.actor }} starts workflow on tag ${{ gitea.ref_name }} +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Extract tag message + id: tag_msg + run: | + TAG_MSG=$(git tag -l -n99 ${{ gitea.ref_name }} | sed 's/^[v0-9.]\+\s\+//') + if [ -z "$TAG_MSG" ] || [ "$TAG_MSG" = "$((gitea.ref_name))" ]; then + TAG_MSG="Automated release ${{ gitea.ref_name }}" + fi + + EOF=$(dd if=/dev/urandom bs=15 count=1 2>/dev/null | base64 | tr -dc 'a-zA-Z0-9') + echo "msg<<$EOF" >> $GITHUB_OUTPUT + echo "$TAG_MSG" >> $GITHUB_OUTPUT + echo "$EOF" >> $GITHUB_OUTPUT + + - name: Extract module ID + id: get_module_info + run: | + MODULE_JSON_PATH=$(find . -type f -name "module.json" -not -path "*/node_modules/*" | head -n 1) + if [ -z "$MODULE_JSON_PATH" ]; then + echo "Error: module.json not found" + exit 1 + fi + MODULE_ID=$(jq -r '.id' "$MODULE_JSON_PATH") + echo "module_id=${MODULE_ID}" >> $GITHUB_OUTPUT + echo "module_json_path=${MODULE_JSON_PATH}" >> $GITHUB_OUTPUT + + - name: Archive module files + uses: https://github.com/TheDoctor0/zip-release@0.7.5 + with: + type: 'zip' + path: '${{ steps.get_module_info.outputs.module_id }}' + filename: '${{ steps.get_module_info.outputs.module_id }}.zip' + exclusions: '/*node_modules/*' + + - name: Upload archive + uses: akkuman/gitea-release-action@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ gitea.ref_name }} + name: "Release ${{ gitea.ref_name }}" + files: | + ${{ steps.get_module_info.outputs.module_id }}.zip + ${{ steps.get_module_info.outputs.module_json_path }} + body: ${{ steps.tag_msg.outputs.msg }}