ci: use semantic-release (#746)

This commit is contained in:
Palm 2023-03-23 23:34:52 +07:00 committed by GitHub
parent ded59d2da0
commit 276f33b9ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 10532 additions and 230 deletions

View File

@ -1,141 +0,0 @@
name: Android Release
on:
push:
branches:
- "**"
tags-ignore:
- "v*"
pull_request:
branches:
- "**"
workflow_dispatch:
jobs:
version:
name: Create version number
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Fetch all history for all tags and branches
run: |
git config remote.origin.url https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
git fetch --prune --depth=10000
- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0.9.7
with:
versionSpec: "5.x"
- name: Use GitVersion
id: gitversion
uses: gittools/actions/gitversion/execute@v0.9.7
- name: Create version.txt with nuGetVersion
run: echo ${{ steps.gitversion.outputs.nuGetVersion }} > version.txt
- name: Upload version.txt
uses: actions/upload-artifact@v2
with:
name: gitversion
path: version.txt
build:
name: Create Android Build
needs: version
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Get version.txt
uses: actions/download-artifact@v2
with:
name: gitversion
- name: Create new file without newline char from version.txt
run: tr -d '\n' < version.txt > version1.txt
- name: Read version
id: version
uses: juliangruber/read-file-action@v1
with:
path: version1.txt
- name: Update version in YAML
run: sed -i 's/99.99.99+99/${{ steps.version.outputs.content }}+${{ github.run_number }}/g' pubspec.yaml
- name: Download Android keystore
id: android_keystore
uses: timheuer/base64-to-file@v1.0.3
with:
fileName: upload-keystore.jks
encodedString: ${{ secrets.SIGNING_KEYSTORE }}
- name: Create key.properties
run: |
echo "storeFile=${{ steps.android_keystore.outputs.filePath }}" > android/key.properties
echo "storePassword=${{ secrets.SIGNING_KEYSTORE_PASSWORD }}" >> android/key.properties
echo "keyPassword=${{ secrets.SIGNING_KEY_PASSWORD }}" >> android/key.properties
echo "keyAlias=${{ secrets.SIGNING_KEY_ALIAS }}" >> android/key.properties
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: "12.x"
cache: gradle
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
- name: Get dependencies
run: flutter pub get
- name: Generate files with Builder
run: flutter packages pub run build_runner build --delete-conflicting-outputs
- name: Build with Flutter
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }}
run: flutter build apk
- name: Sign APK
id: sign_apk
uses: ilharp/sign-android-release@v1
with:
releaseDir: build/app/outputs/apk/release
signingKey: ${{ secrets.SIGNING_KEYSTORE }}
keyStorePassword: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }}
keyAlias: ${{ secrets.SIGNING_KEY_ALIAS }}
keyPassword: ${{ secrets.SIGNING_KEY_PASSWORD }}
- name: Add version to APK
run: mv ${{ steps.sign_apk.outputs.signedFile }} revanced-manager-${{ env.RELEASE_VERSION }}.apk
- name: Upload APK
uses: actions/upload-artifact@v3
with:
name: revanced-manager-${{ env.RELEASE_VERSION }}
path: revanced-manager-${{ env.RELEASE_VERSION }}.apk
# deploy:
# name: Deploy Android Build
# needs: build
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v1
# - name: Get Android Build from artifacts
# uses: actions/download-artifact@v2
# with:
# name: android-release
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true

View File

@ -1,37 +1,39 @@
name: "Android CI PR Build" name: PR Build
on: on:
pull_request: workflow_dispatch:
branches:
- "**" jobs:
build:
jobs: name: Build
release: runs-on: ubuntu-latest
runs-on: ubuntu-latest steps:
steps: - name: Checkout
- uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Set env with:
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV # Make sure the release step uses its own credentials:
- name: Set up JDK 12 # https://github.com/cycjimmy/semantic-release-action#private-packages
uses: actions/setup-java@v3 persist-credentials: false
with: fetch-depth: 0
java-version: '12' - name: Setup JDK
distribution: 'zulu' uses: actions/setup-java@v3
- uses: subosito/flutter-action@v2 with:
with: java-version: '17'
channel: 'stable' distribution: 'zulu'
- name: Set up Flutter - name: Setup Flutter
run: flutter pub get uses: subosito/flutter-action@v2
- name: Generate files with Builder with:
run: flutter packages pub run build_runner build --delete-conflicting-outputs channel: 'stable'
- name: Build with Flutter - name: Install Flutter dependencies
env: run: flutter pub get
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Generate files with Builder
run: flutter build apk run: flutter packages pub run build_runner build --delete-conflicting-outputs
- name: Add version to APK - name: Build with Flutter
run: mv build/app/outputs/flutter-apk/app-release.apk revanced-manager-${{ env.RELEASE_VERSION }}.apk env:
- name: Upload APK GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: actions/upload-artifact@v3 run: flutter build apk
with: - name: Upload build
name: revanced-manager-${{ env.RELEASE_VERSION }} uses: actions/upload-artifact@v3
path: revanced-manager-${{ env.RELEASE_VERSION }}.apk with:
name: revanced-manager
path: build/app/outputs/flutter-apk/app-release.apk

View File

@ -1,50 +1,67 @@
name: "Release Build" name: Release
on: on:
push: workflow_dispatch:
tags: push:
- "v*" branches:
- main
jobs: - dev
release: jobs:
runs-on: ubuntu-latest release:
steps: name: Release
- uses: actions/checkout@v3 runs-on: ubuntu-latest
- name: Set env steps:
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV - name: Checkout
- name: Set up JDK 12 uses: actions/checkout@v3
uses: actions/setup-java@v3 with:
with: # Make sure the release step uses its own credentials:
java-version: '12' # https://github.com/cycjimmy/semantic-release-action#private-packages
distribution: 'zulu' persist-credentials: false
- uses: subosito/flutter-action@v2 fetch-depth: 0
with: - name: Setup JDK
channel: 'stable' uses: actions/setup-java@v3
- name: Set up Flutter with:
run: flutter pub get java-version: '17'
- name: Generate files with Builder distribution: 'zulu'
run: flutter packages pub run build_runner build --delete-conflicting-outputs - name: Setup Node.js
- name: Build with Flutter uses: actions/setup-node@v3
env: with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} node-version: '18'
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }} cache: 'npm'
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }} - name: Setup Flutter
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }} uses: subosito/flutter-action@v2
run: flutter build apk with:
- name: Sign APK channel: 'stable'
id: sign_apk - name: Install Flutter dependencies
uses: ilharp/sign-android-release@v1 run: flutter pub get
with: - name: Generate files with Builder
releaseDir: build/app/outputs/apk/release run: flutter packages pub run build_runner build --delete-conflicting-outputs
signingKey: ${{ secrets.SIGNING_KEYSTORE }} - name: Build with Flutter
keyStorePassword: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }} env:
keyAlias: ${{ secrets.SIGNING_KEY_ALIAS }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
keyPassword: ${{ secrets.SIGNING_KEY_PASSWORD }} SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
- name: Add version to APK SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
run: mv ${{steps.sign_apk.outputs.signedFile}} revanced-manager-${{ env.RELEASE_VERSION }}.apk SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }}
- name: Publish release APK run: flutter build apk
uses: "marvinpinto/action-automatic-releases@latest" - name: Sign APK
with: id: sign_apk
repo_token: "${{ secrets.GITHUB_TOKEN }}" uses: ilharp/sign-android-release@v1
prerelease: false with:
files: revanced-manager-${{ env.RELEASE_VERSION }}.apk releaseDir: build/app/outputs/apk/release
signingKey: ${{ secrets.SIGNING_KEYSTORE }}
keyStorePassword: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }}
keyAlias: ${{ secrets.SIGNING_KEY_ALIAS }}
keyPassword: ${{ secrets.SIGNING_KEY_PASSWORD }}
- name: Setup semantic-release
run: npm install
- name: Get release version
run: npx semantic-release --dry-run
id: get-next-version
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Add version to APK
run: mv ${{steps.sign_apk.outputs.signedFile}} revanced-manager-${{ steps.get-next-version.outputs.new-release-version }}.apk
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npm exec semantic-release

5
.gitignore vendored
View File

@ -135,4 +135,7 @@ app.*.map.json
!/dev/ci/**/Gemfile.lock !/dev/ci/**/Gemfile.lock
Firebase related Firebase related
.firebase .firebase
# Depdenency directories
node_modules/

74
.releaserc Normal file
View File

@ -0,0 +1,74 @@
{
"branches": [
"main",
{
"name": "dev",
"prerelease": true
}
],
"plugins": [
"@semantic-release/commit-analyzer",
[
"@semantic-release/release-notes-generator",
{
"presetConfig": {
"types": [
{
"type": "build",
"section": "Dependency Updates"
},
{
"type": "chore",
"section": "Other Changes",
"hidden": false
},
{
"type": "perf",
"section": "Performance Improvements",
"hidden": false
},
{
"type": "refactor",
"section": "Code Improvements",
"hidden": false
}
]
}
}
],
"@semantic-release/changelog",
"semantic-release-dart",
[
"@semantic-release/git",
{
"assets": [
"CHANGELOG.md",
"pubspec.yaml"
]
}
],
[
"@semantic-release/github",
{
"assets": [
{
"path": "build/app/outputs/flutter-apk/revanced-manager-*.apk"
}
],
"successComment": false
}
],
[
"@saithodev/semantic-release-backmerge",
{
"backmergeBranches": [
{
"from": "main",
"to": "dev"
}
],
"clearWorkspace": true
}
]
]
}

0
CHANGELOG.md Normal file
View File

10338
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

9
package.json Normal file
View File

@ -0,0 +1,9 @@
{
"devDependencies": {
"@saithodev/semantic-release-backmerge": "^3.1.0",
"@semantic-release/changelog": "^6.0.2",
"@semantic-release/git": "^10.0.1",
"semantic-release": "^20.1.0",
"semantic-release-dart": "^1.0.0-alpha.1"
}
}

View File

@ -4,7 +4,7 @@ homepage: https://github.com/revanced/revanced-manager
publish_to: 'none' publish_to: 'none'
version: 0.0.57+57 version: 0.0.57
environment: environment:
sdk: ">=2.17.5 <3.0.0" sdk: ">=2.17.5 <3.0.0"