fix: 测试ci
Some checks failed
Flutter Build - Sky Dev / Build Android for Sky (dev) (push) Failing after 8m47s
Some checks failed
Flutter Build - Sky Dev / Build Android for Sky (dev) (push) Failing after 8m47s
This commit is contained in:
parent
2674cf2554
commit
13af3c02a2
@ -10,60 +10,114 @@ jobs:
|
|||||||
name: Build Android for Sky (dev)
|
name: Build Android for Sky (dev)
|
||||||
runs-on: sky
|
runs-on: sky
|
||||||
|
|
||||||
|
env:
|
||||||
|
FLAVOR: sky_dev
|
||||||
|
MAIN_FILE: lib/main_sky_dev.dart
|
||||||
|
BUILD_TYPE: dev
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Code
|
- name: Checkout Code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # 获取全部历史,用于计算 commits
|
||||||
|
|
||||||
- name: Setup Environment Variables
|
- name: Determine Version
|
||||||
|
id: version
|
||||||
run: |
|
run: |
|
||||||
echo "NEXT_VERSION=1.0.0" >> $GITEA_ENV
|
# 获取上一个 tag(格式 v1.4.598_sky)
|
||||||
echo "BUILD_NUMBER=1" >> $GITEA_ENV
|
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v1.0.0_sky")
|
||||||
|
echo "LAST_TAG=$LAST_TAG"
|
||||||
|
|
||||||
- name: Flutter Pub Get
|
# 提取基础版本号 v1.4.598
|
||||||
|
BASE_VERSION=$(echo "$LAST_TAG" | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | head -1)
|
||||||
|
if [ -z "$BASE_VERSION" ]; then
|
||||||
|
BASE_VERSION="v1.0.0"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 分割版本号
|
||||||
|
MAJOR=$(echo $BASE_VERSION | cut -d'.' -f1 | sed 's/v//')
|
||||||
|
MINOR=$(echo $BASE_VERSION | cut -d'.' -f2)
|
||||||
|
PATCH=$(echo $BASE_VERSION | cut -d'.' -f3)
|
||||||
|
|
||||||
|
# 计算从上个 tag 到现在的唯一 commit messages 数量
|
||||||
|
COMMIT_COUNT=$(git log --pretty=%B "${LAST_TAG}.." | grep -v '^$' | sort -u | wc -l | tr -d ' ')
|
||||||
|
|
||||||
|
# 新 patch = 原 patch + commit 数
|
||||||
|
NEW_PATCH=$((PATCH + COMMIT_COUNT))
|
||||||
|
|
||||||
|
# 构造新版本号
|
||||||
|
NEXT_VERSION="v${MAJOR}.${MINOR}.${NEW_PATCH}"
|
||||||
|
|
||||||
|
# 带环境标识的完整版本
|
||||||
|
NEXT_VERSION_FULL="${NEXT_VERSION}_${FLAVOR}"
|
||||||
|
|
||||||
|
echo "NEXT_VERSION=$NEXT_VERSION" >> $GITEA_ENV
|
||||||
|
echo "NEXT_VERSION_FULL=$NEXT_VERSION_FULL" >> $GITEA_ENV
|
||||||
|
echo "BUILD_NUMBER=$NEW_PATCH" >> $GITEA_ENV
|
||||||
|
|
||||||
|
echo "✅ Next version: $NEXT_VERSION_FULL (Build: $NEW_PATCH)"
|
||||||
|
|
||||||
|
- name: Setup Flutter
|
||||||
run: flutter pub get
|
run: flutter pub get
|
||||||
|
|
||||||
- name: Clean Project
|
- name: Clean Project
|
||||||
run: flutter clean
|
run: flutter clean
|
||||||
|
|
||||||
- name: Build APK (sky_dev flavor)
|
- name: Build APK (${FLAVOR})
|
||||||
run: |
|
run: |
|
||||||
flutter build apk \
|
flutter build apk \
|
||||||
--no-tree-shake-icons \
|
--no-tree-shake-icons \
|
||||||
--release \
|
--flavor ${FLAVOR} \
|
||||||
--flavor sky_dev \
|
-t ${MAIN_FILE} \
|
||||||
-t lib/main_sky_dev.dart \
|
|
||||||
--build-number=${{ env.BUILD_NUMBER }} \
|
--build-number=${{ env.BUILD_NUMBER }} \
|
||||||
--build-name=${{ env.NEXT_VERSION }}
|
--build-name=${{ env.NEXT_VERSION }}
|
||||||
|
|
||||||
- name: Rename APK
|
- name: Build AppBundle (sky flavor, dev mode)
|
||||||
run: |
|
|
||||||
mkdir -p build/output
|
|
||||||
mv build/app/outputs/flutter-apk/app-sky_dev-release.apk \
|
|
||||||
build/output/starlock-sky-preview-${{ env.NEXT_VERSION }}.apk
|
|
||||||
|
|
||||||
- name: Build AppBundle (Release)
|
|
||||||
run: |
|
run: |
|
||||||
flutter build appbundle \
|
flutter build appbundle \
|
||||||
--no-tree-shake-icons \
|
--no-tree-shake-icons \
|
||||||
--release \
|
|
||||||
--flavor sky \
|
--flavor sky \
|
||||||
-t lib/main_sky_lite.dart \
|
-t lib/main_sky_lite.dart \
|
||||||
--build-number=${{ env.BUILD_NUMBER }} \
|
--build-number=${{ env.BUILD_NUMBER }} \
|
||||||
--build-name=${{ env.NEXT_VERSION }}
|
--build-name=${{ env.NEXT_VERSION }}
|
||||||
|
|
||||||
- name: Rename AAB
|
- name: Prepare Output Directory
|
||||||
run: |
|
run: |
|
||||||
mkdir -p build/output/skyRelease
|
mkdir -p build/output
|
||||||
mv build/app/outputs/bundle/release/app-sky-release.aab \
|
# 重命名 APK
|
||||||
build/output/skyRelease/starlock-sky-release-${{ env.NEXT_VERSION }}.aab
|
mv build/app/outputs/flutter-apk/app-${{ env.FLAVOR }}-release.apk \
|
||||||
|
build/output/starlock-sky-${{ env.BUILD_TYPE }}-${{ env.NEXT_VERSION_FULL }}.apk
|
||||||
|
# 重命名 AAB
|
||||||
|
mv build/app/outputs/bundle/skyRelease/app-sky-release.aab \
|
||||||
|
build/output/starlock-sky-${{ env.BUILD_TYPE }}-${{ env.NEXT_VERSION_FULL }}.aab
|
||||||
|
|
||||||
- name: List Output Files
|
- name: Build iOS (${{ env.FLAVOR }})
|
||||||
run: |
|
run: |
|
||||||
ls -la build/output/
|
flutter build ios \
|
||||||
|
--no-codesign \
|
||||||
|
--flavor ${FLAVOR} \
|
||||||
|
-t ${MAIN_FILE} \
|
||||||
|
--build-number=${{ env.BUILD_NUMBER }} \
|
||||||
|
--build-name=${{ env.NEXT_VERSION }}
|
||||||
|
|
||||||
- name: Upload Artifacts (Optional)
|
- name: Rename IPA
|
||||||
|
run: |
|
||||||
|
mkdir -p build/output
|
||||||
|
cp -r build/ios/ipa/*.ipa build/output/starlock-sky-${{ env.BUILD_TYPE }}-${{ env.NEXT_VERSION_FULL }}.ipa
|
||||||
|
|
||||||
|
- name: List Outputs
|
||||||
|
run: ls -la build/output/
|
||||||
|
|
||||||
|
- name: Upload Artifacts
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: flutter-builds-${{ env.NEXT_VERSION }}
|
name: flutter-builds-${{ env.NEXT_VERSION_FULL }}
|
||||||
path: |
|
path: build/output/
|
||||||
build/output/
|
|
||||||
|
- name: Create and Push New Tag
|
||||||
|
run: |
|
||||||
|
NEW_TAG=${{ env.NEXT_VERSION_FULL }}
|
||||||
|
git config user.name "Gitea Runner"
|
||||||
|
git config user.email "runner@gitea.local"
|
||||||
|
git tag "$NEW_TAG"
|
||||||
|
git push origin "$NEW_TAG" || echo "Tag might already exist"
|
||||||
Loading…
x
Reference in New Issue
Block a user