-
Notifications
You must be signed in to change notification settings - Fork 10
158 lines (148 loc) · 4.91 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
name: Flutter CI
on:
push:
tags:
- "*"
jobs:
build-and-release-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
architecture: x64
- name: Update dependencies
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-0 libgtk-3-dev libblkid1 liblzma5
- name: Install project dependencies
run: flutter pub get
- name: Enable linux build
run: flutter config --enable-linux-desktop
- name: Build artifacts
run: flutter build linux --release
- name: Build Appimage
run: bash ./github_appimage_build.sh
- name: Compress action step
run: tar -C build/linux/x64/release/bundle -cf flut-renamer-linux.tar.gz ./
- name: Linux Release
uses: actions/upload-artifact@v4
with:
name: flut-renamer-linux
path: flut-renamer-linux.tar.gz
- name: Linux Appimage Release
uses: actions/upload-artifact@v4
with:
name: flut-renamer-appimage
path: Flut_Renamer-x86_64.AppImage
- uses: actions/setup-java@v2
with:
distribution: 'zulu'
java-version: '17.x'
- name: decode key base64
run: echo $KEYSTORE_BASE64 | base64 -di > ./android/app/flut-renamer.jks
env:
KEYSTORE_BASE64: ${{ secrets.KEYSTORE_BASE64 }}
- name: Build android
run: |
flutter build apk --release
flutter build apk --release --split-per-abi
env:
KEYSTORE: flut-renamer.jks
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD}}
- name: Android Release
uses: actions/upload-artifact@v4
with:
name: flut-renamer-android
path: build/app/outputs/flutter-apk
build-and-release-windows:
runs-on: windows-latest
steps:
- name: check current path
run: cd
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
architecture: x64
- name: Install project dependencies
run: flutter pub get
- name: Enable windows build
run: flutter config --enable-windows-desktop
- name: Build artifacts
run: flutter build windows --release
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: install evb
run: npm install enigmavirtualbox -g
- name: create evb file
run: dart .\dev\windows_evb_config_generator.dart
- name: build single exe file
run: enigmavirtualbox cli "flut-renamer.evb"
- name: Windows Release
uses: actions/upload-artifact@v4
with:
name: flut-renamer-win
path: flut-renamer.exe
build-and-release-macos:
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
architecture: arm64
- name: Install project dependencies
run: flutter pub get
- name: Enable macOS build
run: flutter config --enable-macos-desktop
- name: Build artifacts
run: flutter build macos --release
- name: install npm
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- name: install appdmg
run: npm install -g appdmg
- name: build dmg
run: appdmg ./dmg/config.json ./build/macos/Build/Products/Release/flut-renamer.dmg
- name: macOS Release
uses: actions/upload-artifact@v4
with:
name: flut-renamer-macos
path: build/macos/Build/Products/Release/flut-renamer.dmg
- name: Build ios
run: |
flutter build ios --release --no-codesign
ln -sf ./build/ios/iphoneos Payload
zip -r9 flut-renamer-release.ipa Payload/runner.app
- name: ios Release
uses: actions/upload-artifact@v4
with:
name: flut-renamer-ios
path: flut-renamer-release.ipa
upload:
runs-on: ubuntu-latest
needs:
- build-and-release-linux
- build-and-release-windows
- build-and-release-macos
steps:
- uses: actions/download-artifact@v4
with:
path: ./flut-renamer-release
merge-multiple: true
- name: Install dependencies
run: sudo apt-get install tree -y
- name: Upload Release
uses: ncipollo/release-action@v1
with:
token: ${{ secrets.GIT_TOKEN }}
omitBodyDuringUpdate: true
omitNameDuringUpdate: true
omitPrereleaseDuringUpdate: true
allowUpdates: true
artifacts: flut-renamer-release/*