mirror of
https://github.com/hackdiaz-dev/free-turn-proxy.git
synced 2026-10-12 09:41:53 +02:00
132 lines
3.1 KiB
YAML
132 lines
3.1 KiB
YAML
name: Release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*.*.*'
|
|
|
|
permissions:
|
|
contents: write
|
|
packages: write
|
|
|
|
env:
|
|
GO_VERSION: "1.26.5"
|
|
GORELEASER_VERSION: v2.15.4
|
|
GOMOBILE_VERSION: latest
|
|
TASK_VERSION: 3.51.1
|
|
|
|
jobs:
|
|
build-ios:
|
|
name: Build iOS XCFramework
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v6.0.2
|
|
|
|
- uses: actions/setup-go@v6.4.0
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
cache: true
|
|
|
|
- uses: arduino/setup-task@v2.0.0
|
|
with:
|
|
version: ${{ env.TASK_VERSION }}
|
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Install gomobile
|
|
run: |
|
|
go install golang.org/x/mobile/cmd/gomobile@${{ env.GOMOBILE_VERSION }}
|
|
gomobile init
|
|
|
|
- name: Build XCFramework
|
|
run: task build:ios
|
|
|
|
- name: Zip XCFramework
|
|
run: cd dist && zip -r Mobile.xcframework.zip Mobile.xcframework
|
|
|
|
- uses: actions/upload-artifact@v7.0.1
|
|
with:
|
|
name: ios-xcframework-zip
|
|
path: dist/Mobile.xcframework.zip
|
|
retention-days: 7
|
|
|
|
build-android:
|
|
name: Build Android AAR
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6.0.2
|
|
|
|
- uses: actions/setup-go@v6.4.0
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
cache: true
|
|
|
|
- uses: arduino/setup-task@v2.0.0
|
|
with:
|
|
version: ${{ env.TASK_VERSION }}
|
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Set up Android NDK
|
|
run: |
|
|
NDK_DIR=$(ls -d $ANDROID_SDK_ROOT/ndk/*/ 2>/dev/null | sort -V | tail -n1)
|
|
echo "ANDROID_NDK_HOME=${NDK_DIR%/}" >> $GITHUB_ENV
|
|
|
|
- name: Install gomobile
|
|
run: |
|
|
go install golang.org/x/mobile/cmd/gomobile@${{ env.GOMOBILE_VERSION }}
|
|
gomobile init
|
|
|
|
- name: Build AAR
|
|
run: task build:android
|
|
|
|
- uses: actions/upload-artifact@v7.0.1
|
|
with:
|
|
name: android-aar
|
|
path: dist/mobile.aar
|
|
retention-days: 7
|
|
|
|
goreleaser:
|
|
name: GoReleaser
|
|
runs-on: ubuntu-latest
|
|
needs: [build-ios, build-android]
|
|
steps:
|
|
- uses: actions/checkout@v6.0.2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- uses: actions/setup-go@v6.4.0
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
cache: true
|
|
|
|
- uses: docker/setup-qemu-action@v4.0.0
|
|
|
|
- uses: docker/setup-buildx-action@v4.1.0
|
|
|
|
- name: Log in to GHCR
|
|
uses: docker/login-action@v4.2.0
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Install syft (SBOM)
|
|
uses: anchore/sbom-action/download-syft@v0.24.0
|
|
|
|
- uses: actions/download-artifact@v7.0.0
|
|
with:
|
|
name: ios-xcframework-zip
|
|
path: mobile-dist/
|
|
|
|
- uses: actions/download-artifact@v7.0.0
|
|
with:
|
|
name: android-aar
|
|
path: mobile-dist/
|
|
|
|
- uses: goreleaser/goreleaser-action@v7.2.2
|
|
with:
|
|
distribution: goreleaser
|
|
version: ${{ env.GORELEASER_VERSION }}
|
|
args: release --clean
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|