Skip to content

arm64 build

arm64 build #119

Workflow file for this run

name: build
on:
push:
tags:
- 'v*'
env:
IS_STABLE: ${{ !contains(github.ref, '-') }}
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
# - platform: android
# os: ubuntu-latest
# - platform: windows
# os: windows-latest
# arch: amd64
# - platform: linux
# os: ubuntu-latest
# arch: amd64
# - platform: macos
# os: macos-13
# arch: amd64
# - platform: macos
# os: macos-latest
# arch: arm64
- platform: windows
os: windows-11-arm
arch: arm64
# - platform: linux
# os: ubuntu-24.04-arm
# arch: arm64
steps:
- name: Setup rust
if: startsWith(matrix.os, 'windows-11-arm')
run: |
Invoke-WebRequest -Uri "https://win.rustup.rs/aarch64" -OutFile rustup-init.exe
.\rustup-init.exe -y --default-toolchain stable
$env:Path += ";$env:USERPROFILE\.cargo\bin"
- name: Verify Cargo Environment
if: startsWith(matrix.os, 'windows-11-arm')
run: |
rustc --version
cargo --version
# - name: Checkout
# uses: actions/checkout@v4
# with:
# submodules: recursive
#
# - name: Setup Android Signing
# if: startsWith(matrix.platform,'android')
# run: |
# echo "${{ secrets.KEYSTORE }}" | base64 --decode > android/app/keystore.jks
# echo "keyAlias=${{ secrets.KEY_ALIAS }}" >> android/local.properties
# echo "storePassword=${{ secrets.STORE_PASSWORD }}" >> android/local.properties
# echo "keyPassword=${{ secrets.KEY_PASSWORD }}" >> android/local.properties
#
#
# - name: Setup Go
# uses: actions/setup-go@v5
# with:
# go-version: '1.24.0'
# cache-dependency-path: |
# core/go.sum
#
# - name: Setup Flutter
# uses: subosito/flutter-action@v2
# with:
# channel: ${{ (startsWith(matrix.os, 'windows-11-arm') || startsWith(matrix.os, 'ubuntu-24.04-arm')) && 'master' || 'stable' }}
# cache: true
#
# - name: Get Flutter Dependency
# run: flutter pub get
#
# - name: Setup
# run: dart setup.dart ${{ matrix.platform }} ${{ matrix.arch && format('--arch {0}', matrix.arch) }} ${{ env.IS_STABLE == 'true' && '--env stable' || '' }}
#
# - name: Upload
# uses: actions/upload-artifact@v4
# with:
# name: artifact-${{ matrix.platform }}${{ matrix.arch && format('-{0}', matrix.arch) }}
# path: ./dist
# overwrite: true
# changelog:
# runs-on: ubuntu-latest
# needs: [ build ]
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# if: ${{ env.IS_STABLE == 'true' }}
# with:
# fetch-depth: 0
# ref: refs/heads/main
# - name: Generate
# if: ${{ env.IS_STABLE == 'true' }}
# run: |
# tags=($(git tag --merged $(git rev-parse HEAD) --sort=-creatordate))
# preTag=$(grep -oP '^## \K.*' CHANGELOG.md | head -n 1)
# currentTag=""
# for ((i = 0; i <= ${#tags[@]}; i++)); do
# if (( i < ${#tags[@]} )); then
# tag=${tags[$i]}
# else
# tag=""
# fi
# if [ -n "$currentTag" ]; then
# if [ "$(echo -e "$currentTag\n$preTag" | sort -V | head -n 1)" == "$currentTag" ]; then
# break
# fi
# fi
# if [ -n "$currentTag" ]; then
# echo "## $currentTag" >> NEW_CHANGELOG.md
# echo "" >> NEW_CHANGELOG.md
# if [ -n "$tag" ]; then
# git log --pretty=format:"%B" "$tag..$currentTag" | awk 'NF {print "- " $0} !NF {print ""}' >> NEW_CHANGELOG.md
# else
# git log --pretty=format:"%B" "$currentTag" | awk 'NF {print "- " $0} !NF {print ""}' >> NEW_CHANGELOG.md
# fi
# echo "" >> NEW_CHANGELOG.md
# fi
# currentTag=$tag
# done
# cat CHANGELOG.md >> NEW_CHANGELOG.md
# cat NEW_CHANGELOG.md > CHANGELOG.md
#
# - name: Commit
# if: ${{ env.IS_STABLE == 'true' }}
# run: |
# git add CHANGELOG.md
# if ! git diff --cached --quiet; then
# echo "Commit pushing"
# git config --local user.email "chen08209@gmail.com"
# git config --local user.name "chen08209"
# git commit -m "Update changelog"
# git push
# if [ $? -eq 0 ]; then
# echo "Push succeeded"
# else
# echo "Push failed"
# exit 1
# fi
# fi
#
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
#
# upload:
# permissions: write-all
# needs: [ build ]
# runs-on: ubuntu-latest
# services:
# telegram-bot-api:
# image: aiogram/telegram-bot-api:latest
# env:
# TELEGRAM_API_ID: ${{ secrets.TELEGRAM_API_ID }}
# TELEGRAM_API_HASH: ${{ secrets.TELEGRAM_API_HASH }}
# ports:
# - 8081:8081
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# with:
# fetch-depth: 0
#
# - name: Download
# uses: actions/download-artifact@v4
# with:
# path: ./dist/
# pattern: artifact-*
# merge-multiple: true
#
# - name: Generate release.md
# run: |
# tags=($(git tag --merged $(git rev-parse HEAD) --sort=-creatordate))
# preTag=$(curl --silent "https://api.github.com/repos/chen08209/FlClash/releases/latest" | grep -Po '"tag_name": "\K.*?(?=")' || echo "")
# currentTag=""
# for ((i = 0; i <= ${#tags[@]}; i++)); do
# if (( i < ${#tags[@]} )); then
# tag=${tags[$i]}
# else
# tag=""
# fi
# if [ -n "$currentTag" ]; then
# if [ "$(echo -e "$currentTag\n$preTag" | sort -V | head -n 1)" == "$currentTag" ]; then
# break
# fi
# fi
# if [ -n "$currentTag" ]; then
# if [ -n "$tag" ]; then
# git log --pretty=format:"%B" "$tag..$currentTag" | awk 'NF {print "- " $0} !NF {print ""}' >> release.md
# else
# git log --pretty=format:"%B" "$currentTag" | awk 'NF {print "- " $0} !NF {print ""}' >> release.md
# fi
# echo "" >> release.md
# fi
# currentTag=$tag
# done
#
# - name: Push to telegram
# env:
# TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
# TAG: ${{ github.ref_name }}
# run: |
# python -m pip install --upgrade pip
# pip install requests
# python release_telegram.py
#
# - name: Patch release.md
# run: |
# version=$(echo "${{ github.ref_name }}" | sed 's/^v//')
# sed "s|VERSION|$version|g" ./.github/release_template.md >> release.md
#
# - name: Release
# if: ${{ env.IS_STABLE == 'true' }}
# uses: softprops/action-gh-release@v2
# with:
# files: ./dist/*
# body_path: './release.md'
#
# - name: Create Fdroid Source Dir
# if: ${{ env.IS_STABLE == 'true' }}
# run: |
# mkdir -p ./tmp
# cp ./dist/*android-arm64-v8a* ./tmp/ || true
# echo "Files copied successfully"
#
# - name: Push to fdroid repo
# if: ${{ env.IS_STABLE == 'true' }}
# uses: cpina/github-action-push-to-another-repository@v1.7.2
# env:
# SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }}
# with:
# source-directory: ./tmp/
# destination-github-username: chen08209
# destination-repository-name: FlClash-fdroid-repo
# user-name: 'github-actions[bot]'
# user-email: 'github-actions[bot]@users.noreply.github.com'
# target-branch: main
# commit-message: Update from ${{ github.ref_name }}
# target-directory: /tmp/