mirror of
https://github.com/jwinterm/grim.git
synced 2026-11-14 01:43:52 +01:00
121 lines
4.0 KiB
YAML
121 lines
4.0 KiB
YAML
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- ci
|
|
tags-ignore:
|
|
- "*-dev*"
|
|
|
|
jobs:
|
|
version:
|
|
runs-on: ubuntu
|
|
outputs:
|
|
v: ${{ steps.version.outputs.v }}
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
- name: Get version
|
|
id: version
|
|
run: |
|
|
ver="$(grep -m 1 -Po 'version = "\K[^"]*' Cargo.toml)"
|
|
[[ $ver == *"-dev"* ]] && ver=${ver} || ver=${ver}-dev
|
|
[[ ${{ forgejo.ref_type }} == 'tag' ]] && app_ver=${{ forgejo.ref_name }} || app_ver=v${ver}
|
|
echo "v=${app_ver}" >> "$FORGEJO_OUTPUT"
|
|
echo $app_ver
|
|
[[ ${{ forgejo.ref_type }} == 'tag' ]] && pre=false || pre=true
|
|
echo "pre=${pre}" >> "$FORGEJO_OUTPUT"
|
|
echo "pre-release: ${pre}"
|
|
- name: Check existing release
|
|
if: ${{ forgejo.ref_type == 'tag' }}
|
|
id: check
|
|
run: |
|
|
git fetch --tags
|
|
dev_sha=$(git rev-parse refs/tags/${{ forgejo.ref_name }}-dev)
|
|
[[ "$(git show-ref)" == *"${dev_sha}"* ]] && exists='true' || exists='false'
|
|
echo "exists=${exists}" >> "$FORGEJO_OUTPUT"
|
|
echo ${exists}
|
|
mkdir release
|
|
- uses: actions/forgejo-release@v2.7.3
|
|
if: ${{ forgejo.ref_type == 'tag' && steps.check.outputs.exists == 'true' }}
|
|
with:
|
|
direction: download
|
|
token: ${{ secrets.RELEASE_TOKEN }}
|
|
tag: "${{ forgejo.ref_name }}-dev"
|
|
release-dir: ./release
|
|
- name: Rename files
|
|
if: ${{ forgejo.ref_type == 'tag' && steps.check.outputs.exists == 'true' }}
|
|
working-directory: release
|
|
run: for f in *; do mv "$f" "$(echo "$f" | sed s/-dev-/-/)"; done
|
|
- uses: actions/forgejo-release@v2.7.3
|
|
if: ${{ forgejo.ref_type == 'tag' && steps.check.outputs.exists == 'true' }}
|
|
with:
|
|
direction: upload
|
|
token: ${{ secrets.RELEASE_TOKEN }}
|
|
tag: ${{ forgejo.ref_name }}
|
|
override: false
|
|
prerelease: false
|
|
release-dir: ./release
|
|
release-notes: ""
|
|
|
|
android:
|
|
if: ${{ forgejo.ref_type == 'branch' || needs.check.outputs.exists == 'false' }}
|
|
runs-on: ubuntu
|
|
needs: version
|
|
uses: ./.forgejo/workflows/android.yaml
|
|
with:
|
|
version: ${{ needs.version.outputs.v }}
|
|
secrets:
|
|
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
|
ANDROID_KEYSTORE: ${{ secrets.ANDROID_KEYSTORE }}
|
|
ANDROID_KEYSTORE_PROPS: ${{ secrets.ANDROID_KEYSTORE_PROPS }}
|
|
|
|
linux:
|
|
if: ${{ forgejo.ref_type == 'branch' || needs.check.outputs.exists == 'false' }}
|
|
runs-on: ubuntu
|
|
needs: [version, android]
|
|
uses: ./.forgejo/workflows/linux.yaml
|
|
with:
|
|
version: ${{ needs.version.outputs.v }}
|
|
secrets:
|
|
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
|
|
|
macos:
|
|
if: ${{ forgejo.ref_type == 'branch' || needs.check.outputs.exists == 'false' }}
|
|
runs-on: ubuntu
|
|
needs: [version, android, linux]
|
|
uses: ./.forgejo/workflows/macos.yaml
|
|
with:
|
|
version: ${{ needs.version.outputs.v }}
|
|
secrets:
|
|
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
|
|
|
windows:
|
|
if: ${{ forgejo.ref_type == 'branch' || needs.check.outputs.exists == 'false' }}
|
|
runs-on: ubuntu
|
|
needs: [version, android, linux, macos]
|
|
uses: ./.forgejo/workflows/windows.yaml
|
|
with:
|
|
version: ${{ needs.version.outputs.v }}
|
|
secrets:
|
|
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
|
|
|
release:
|
|
if: ${{ forgejo.ref_type == 'branch' || needs.check.outputs.exists == 'false' }}
|
|
runs-on: ubuntu
|
|
needs: [version, android, linux, macos, windows]
|
|
steps:
|
|
- run: mkdir release
|
|
- name: Download All Artifacts
|
|
uses: forgejo/download-artifact@v4
|
|
with:
|
|
path: release
|
|
pattern: release_*
|
|
merge-multiple: true
|
|
- uses: actions/forgejo-release@v2.7.3
|
|
with:
|
|
direction: upload
|
|
token: ${{ secrets.RELEASE_TOKEN }}
|
|
tag: ${{ needs.version.outputs.v }}
|
|
override: true
|
|
prerelease: ${{ needs.version.outputs.pre }}
|
|
release-dir: release
|
|
release-notes: "" |