-
Notifications
You must be signed in to change notification settings - Fork 213
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: setup pipeline for flutter app (#943)
- Loading branch information
1 parent
f66b851
commit bf359fc
Showing
90 changed files
with
1,165 additions
and
324 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
name: Badge Magic PR CI | ||
on: | ||
pull_request: | ||
branches: ["flutter_app"] | ||
jobs: | ||
common: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Set up Flutter | ||
uses: subosito/flutter-action@v2 | ||
|
||
- name: Fetch Flutter Dependencies | ||
run: flutter pub get | ||
|
||
- name: Validate Code Format | ||
run: dart format --output=none --set-exit-if-changed . | ||
|
||
- name: Analyze Code | ||
run: flutter analyze | ||
|
||
android-build: | ||
needs: common | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Set up Flutter | ||
uses: subosito/flutter-action@v2 | ||
|
||
- name: Run tests | ||
run: flutter test | ||
|
||
- name: Build Android APK's | ||
run: flutter build apk | ||
|
||
- name: Build Android AAB | ||
run: flutter build appbundle |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,124 @@ | ||
name: Badge Magic Push CI | ||
on: | ||
push: | ||
branches: ["flutter_app"] | ||
jobs: | ||
common: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Set up Flutter | ||
uses: subosito/flutter-action@v2 | ||
|
||
- name: Fetch Flutter Dependencies | ||
run: flutter pub get | ||
|
||
- name: Validate Code Format | ||
run: dart format --output=none --set-exit-if-changed . | ||
|
||
- name: Analyze Code | ||
run: flutter analyze | ||
|
||
android-build: | ||
needs: common | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.gradle/caches | ||
~/.gradle/wrapper | ||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} | ||
restore-keys: | | ||
${{ runner.os }}-gradle- | ||
- uses: actions/cache@v3 | ||
if: ${{ github.repository == 'fossasia/badgemagic-android' }} | ||
with: | ||
path: | | ||
vendor/bundle | ||
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile') }} | ||
restore-keys: | | ||
${{ runner.os }}-gems- | ||
- name: Prepare Bundler | ||
if: ${{ github.repository == 'fossasia/badgemagic-android' }} | ||
run: | | ||
gem install bundler | ||
bundle config path vendor/bundle | ||
bundle install --jobs 4 --retry 3 | ||
- name: Pre Checks | ||
run: | | ||
bash scripts/check-screenshots.sh | ||
- name: Prepare Build Keys | ||
if: ${{ github.repository == 'fossasia/badgemagic-android' }} | ||
env: | ||
ENCRYPTED_F10B5E0E5262_IV: ${{ secrets.ENCRYPTED_F10B5E0E5262_IV }} | ||
ENCRYPTED_F10B5E0E5262_KEY: ${{ secrets.ENCRYPTED_F10B5E0E5262_KEY }} | ||
run: | | ||
bash scripts/prep-key.sh | ||
- name: Set up Flutter | ||
uses: subosito/flutter-action@v2 | ||
|
||
- name: Run tests | ||
run: flutter test | ||
|
||
- name: Build Android APK/AAB | ||
env: | ||
STORE_PASS: ${{ secrets.STORE_PASS }} | ||
ALIAS: ${{ secrets.ALIAS }} | ||
KEY_PASS: ${{ secrets.KEY_PASS }} | ||
run: | | ||
flutter build apk | ||
flutter build appbundle | ||
- name: Upload APK | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: APK Generated | ||
path: build/app/outputs/flutter-apk | ||
|
||
- name: Upload AAB Release | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: AAB Generated | ||
path: build/app/outputs/bundle | ||
|
||
- name: Upload APK to apk branch | ||
if: ${{ github.repository == 'fossasia/badgemagic-android' }} | ||
run: | | ||
git config --global user.name "${{ github.workflow }}" | ||
git config --global user.email "gh-actions@${{ github.repository_owner }}" | ||
git clone --branch=apk https://${{ github.repository_owner }}:${{ github.token }}@github.com/${{ github.repository }} apk | ||
cd apk | ||
if [[ ${{ github.ref_name }} =~ ^(master)$ ]]; then | ||
rm -rf * | ||
else | ||
rm -rf badge-magic-dev* | ||
fi | ||
ls | ||
find ../build/app/outputs -type f \( -name '*.apk' -o -name '*.aab' \) -exec cp -v {} . \; | ||
branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}} | ||
for file in android*; do | ||
mv $file badge-magic-$branch-${file#*-} | ||
done | ||
git checkout --orphan temporary | ||
git add --all . | ||
git commit -am "[Auto] Update APK/AAB's from $branch ($(date +%Y-%m-%d.%H:%M:%S))" | ||
git branch -D apk | ||
git branch -m apk | ||
git push --force origin apk | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
source "https://rubygems.org" | ||
|
||
gem "fastlane" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
.../com/example/badgemagic/MainActivity.java → ...org/fossasia/badgemagic/MainActivity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
## Commit Style Guidelines for Badge Magic Android | ||
|
||
### Message Structure | ||
Commit messages consist of three distinct parts, separated by a blank line: the title, an optional body/content, and an optional footer/metadata. The layout looks like this: | ||
|
||
type: subject | ||
|
||
body | ||
|
||
footer | ||
|
||
*** | ||
|
||
### Title | ||
The title consists of the subject and type of the commit message. | ||
|
||
### Type | ||
The type is contained within the title and can be one of the following types: | ||
|
||
* **feat:** a new feature | ||
* **fix:** a bug fix | ||
* **docs:** changes to documentation | ||
* **style:** formatting, missing semi-colons, etc; no code change | ||
* **refactor:** refactoring production code | ||
* **test:** adding tests, refactoring test; no production code change | ||
* **chore:** updating build tasks, package manager configs, etc; no production code change | ||
|
||
### Subject | ||
The subject is a single short line summarising the change. It should be no greater than 50 characters, should begin with a capital letter and do not end with a period. | ||
|
||
Use an imperative tone to describe what a commit does, rather than what it did. For example, use fix; not fixed or fixes or fixing. | ||
|
||
For example: | ||
- fix: Typo in Commit Style guidelines | ||
- feat: Update UI of AbcActivity | ||
- fix: Remove deprecated methods | ||
- refactor: API endpoints and JSON assets | ||
|
||
instead of writing the following: | ||
- Fixed bug with Y | ||
- Changing behaviour of X | ||
|
||
### Body | ||
The body includes the kind of information commit message (if any) should contain. | ||
|
||
Not every commit requires both a subject and a body. Sometimes a single line is fine, especially when the change is self-explanatory and no further context is necessary, therefore it is optional. The body is used to explain the what and why of a commit, not the how. | ||
|
||
When writing a body, the blank line between the title and the body is required and we should try to limit the length of each line to no more than 72 characters. | ||
|
||
### The Footer | ||
The footer is optional and is used to reference issue tracker IDs. | ||
|
||
For example: | ||
Fixes #1170 | ||
|
||
*** |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.