setup workflow to build preview repo

This commit is contained in:
Cuong M. Tran 2024-05-08 14:51:24 +07:00
parent c0908f9f51
commit f3d3070ea8
No known key found for this signature in database
GPG key ID: 733AA7624B9315C2
5 changed files with 440 additions and 350 deletions

194
.github/workflows/build_benchmark.yml vendored Normal file
View file

@ -0,0 +1,194 @@
name: Benchmark Builder
on:
# Dispatch or Manual triggers
workflow_dispatch:
# push:
# branches:
# - dev-benchmark
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
prepare-build:
if: github.ref == 'refs/tags/master' && github.repository == 'komikku-app/komikku'
runs-on: ubuntu-latest
outputs:
COMMIT_COUNT: ${{ steps.prepare_env.outputs.COMMIT_COUNT }}
CURRENT_SHA: ${{ steps.prepare_env.outputs.CURRENT_SHA }}
PREV_RELEASE_SHA: ${{ steps.prepare_env.outputs.PREV_RELEASE_SHA }}
COMMIT_LOGS: ${{ steps.prepare_env.outputs.COMMIT_LOGS }}
TAG_PREFIX: benchmark-r
ARTIFACTS_PREFIX: dev/benchmark/app-dev
steps:
- name: Get tag name
id: get_tag
run: |
set -x
echo "VERSION_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT
- name: Clone Repository (${{ steps.get_tag.outputs.VERSION_TAG }})
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Prepare env
id: prepare_env
run: |
set -e
commit_count=$(git rev-list --count HEAD)
echo "COMMIT_COUNT=$commit_count" >> $GITHUB_OUTPUT
current_sha=$(git rev-parse --short HEAD)
echo "CURRENT_SHA=$current_sha" >> $GITHUB_OUTPUT
prev_release_sha=$(git log --oneline --decorate --tags --no-walk --pretty='%C(auto)%h' | head -n 1)
echo "PREV_RELEASE_SHA=$prev_release_sha" >> $GITHUB_OUTPUT
echo "COMMIT_LOGS<<{delimiter}
$(curl -H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/komikku-app/komikku/compare/$prev_release_sha...$current_sha" \
| jq '[.commits[]|{message:(.commit.message | split("\n")), username:.author.login}]' \
| jq -r '.[]|"- \(.message | first) (@\(.username))"')
{delimiter}" >> $GITHUB_OUTPUT
build-app:
runs-on: ubuntu-latest
needs: prepare-build
steps:
- name: Clone Repository (r${{ needs.prepare-build.outputs.COMMIT_COUNT }})
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up gradle
uses: gradle/actions/setup-gradle@v3
- name: Setup Android SDK
run: |
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "build-tools;29.0.3"
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 17
distribution: temurin
- name: Write google-services.json
uses: DamianReeves/write-file-action@v1.3
with:
path: app/google-services.json
contents: ${{ secrets.GOOGLE_SERVICES_JSON }}
write-mode: overwrite
- name: Write client_secrets.json
uses: DamianReeves/write-file-action@v1.3
with:
path: app/src/main/assets/client_secrets.json
contents: ${{ secrets.GOOGLE_CLIENT_SECRETS_JSON }}
write-mode: overwrite
# - name: Build app and run unit tests
# uses: gradle/gradle-command-action@v2
# with:
# arguments: detekt assembleDevBenchmark testDevBenchmarkUnitTest
- name: Build Benchmark app and run unit tests
run: ./gradlew assembleDevBenchmark testDevBenchmarkUnitTest --stacktrace
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
path: "**/*.apk"
retention-days: 1
release-app:
runs-on: ubuntu-latest
needs:
- prepare-build
- build-app
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true
- name: Setup Android SDK
run: |
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "build-tools;29.0.3"
- name: Sign APK
uses: r0adkll/sign-android-release@349ebdef58775b1e0d8099458af0816dc79b6407 # v1
with:
releaseDirectory: app/build/outputs/apk/dev/benchmark
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Get SHA & clean up build artifacts
id: get_sha
run: |
set -e
mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-universal-benchmark-signed.apk Komikku-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
sha=`sha256sum Komikku-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk | awk '{ print $1 }'`
echo "APK_UNIVERSAL_SHA=$sha" >> $GITHUB_OUTPUT
mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-arm64-v8a-benchmark-signed.apk Komikku-arm64-v8a-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
sha=`sha256sum Komikku-arm64-v8a-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk | awk '{ print $1 }'`
echo "APK_ARM64_V8A_SHA=$sha" >> $GITHUB_OUTPUT
mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-armeabi-v7a-benchmark-signed.apk Komikku-armeabi-v7a-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
sha=`sha256sum Komikku-armeabi-v7a-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk | awk '{ print $1 }'`
echo "APK_ARMEABI_V7A_SHA=$sha" >> $GITHUB_OUTPUT
mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-x86-benchmark-signed.apk Komikku-x86-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
sha=`sha256sum Komikku-x86-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk | awk '{ print $1 }'`
echo "APK_X86_SHA=$sha" >> $GITHUB_OUTPUT
mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-x86_64-benchmark-signed.apk Komikku-x86_64-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
sha=`sha256sum Komikku-x86_64-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk | awk '{ print $1 }'`
echo "APK_X86_64_SHA=$sha" >> $GITHUB_OUTPUT
- name: Create release
uses: softprops/action-gh-release@9d7c94cfd0a1f3ed45544c887983e9fa900f0564 # v2.0.4
with:
tag_name: ${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}
name: Komikku Benchmark ${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}
body: |
### Commits
https://github.com/komikku-app/komikku/compare/${{ needs.prepare-build.outputs.PREV_RELEASE_SHA }}...${{ needs.prepare-build.outputs.CURRENT_SHA }}
${{ needs.prepare-build.outputs.COMMIT_LOGS }}
---
### Checksums
| Variant | SHA-256 |
| ------- | ------- |
| Universal | ${{ steps.get_sha.outputs.APK_UNIVERSAL_SHA }} |
| arm64-v8a | ${{ steps.get_sha.outputs.APK_ARM64_V8A_SHA }} |
| armeabi-v7a | ${{ steps.get_sha.outputs.APK_ARMEABI_V7A_SHA }} |
| x86 | ${{ steps.get_sha.outputs.APK_X86_SHA }} |
| x86_64 | ${{ steps.get_sha.outputs.APK_X86_64_SHA }} |
## If you are unsure which apk to download then go with Komikku-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
files: |
Komikku-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
Komikku-arm64-v8a-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
Komikku-armeabi-v7a-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
Komikku-x86-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
Komikku-x86_64-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
draft: true
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -1,151 +0,0 @@
name: Development Builder
on:
push:
branches:
- develop
- dev-benchmark
workflow_dispatch: # Manual trigger
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build dev-benchmark commit
runs-on: ubuntu-latest
steps:
- name: Clone repo
uses: actions/checkout@v4
with:
ref: ${{ github.ref_name }}
fetch-depth: 0
- name: Set up gradle
uses: gradle/actions/setup-gradle@v3
- name: Setup Android SDK
run: |
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "build-tools;29.0.3"
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 17
distribution: temurin
- name: Prepare build
run: |
set -e
git fetch --tags
prev_release_sha=$(git log --oneline --decorate --tags --no-walk --pretty='%C(auto)%h' | head -n 1)
echo "PREV_RELEASE_SHA=$prev_release_sha" >> $GITHUB_ENV
current_sha=$(git log -1 --pretty='%C(auto)%h' | head -n 1)
echo "CURRENT_SHA=$current_sha" >> $GITHUB_ENV
echo "COMMIT_LOGS<<{delimiter}
$(curl -H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/komikku-app/komikku/compare/$prev_release_sha...$current_sha" \
| jq '[.commits[]|{message:(.commit.message | split("\n")), username:.author.login}]' \
| jq -r '.[]|"- \(.message | first) (@\(.username))"')
{delimiter}" >> $GITHUB_ENV
- name: Set CHANGELOG
run: |
changelog="$(git log ${{ env.PREV_RELEASE_SHA }}..${{ env.CURRENT_SHA }} --pretty=format:'{{changelogtext}}%s (@%an){{!changelogtext}}')"
changelog="${changelog//$'%'/%25}"
changelog="${changelog//$'\n'/}"
changelog="${changelog//$'\r'/}"
changelog="${changelog//$'<'/}"
changelog="${changelog//$'>'/}"
changelog="${changelog//$'&'/}"
changelog="$(echo $changelog | sed -e 's/{{changelogtext}}/<changelogtext>/g')"
changelog="$(echo $changelog | sed -e 's/{{!changelogtext}}/<\/changelogtext>/g')"
changelog="<?xml version=\"1.0\" encoding=\"utf-8\"?><changelog bulletedList=\"true\"><changelogversion versionName=\"${{ github.run_number }}\" changeDate=\"\">$changelog</changelogversion></changelog>"
echo "CHANGELOG=$changelog" >> $GITHUB_ENV
- name: Write changelog_debug.xml
uses: DamianReeves/write-file-action@v1.3
with:
path: app/src/main/res/raw/changelog_debug.xml
contents: "${{ env.CHANGELOG }}"
write-mode: overwrite
- name: Build app
if: ${{ ! startsWith(github.ref, 'refs/tags/') && github.repository == 'komikku-app/komikku' }}
run: ./gradlew assembleDevBenchmark testDevBenchmarkUnitTest --stacktrace
- name: Sign Android Release
if: ${{ ! startsWith(github.ref, 'refs/tags/') && github.repository == 'komikku-app/komikku' }}
uses: r0adkll/sign-android-release@v1
with:
releaseDirectory: app/build/outputs/apk/dev/benchmark
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Clean up build artifacts
if: ${{ ! startsWith(github.ref, 'refs/tags/') && github.repository == 'komikku-app/komikku' }}
run: |
set -e
mv app/build/outputs/apk/dev/benchmark/app-dev-universal-benchmark-signed.apk Komikku-dev-${{ github.run_number }}.apk
sha=`sha256sum Komikku-dev-${{ github.run_number }}.apk | awk '{ print $1 }'`
echo "APK_UNIVERSAL_SHA=$sha" >> $GITHUB_ENV
cp app/build/outputs/apk/dev/benchmark/app-dev-arm64-v8a-benchmark-signed.apk Komikku-arm64-v8a-dev-${{ github.run_number }}.apk
sha=`sha256sum Komikku-arm64-v8a-dev-${{ github.run_number }}.apk | awk '{ print $1 }'`
echo "APK_ARM64_V8A_SHA=$sha" >> $GITHUB_ENV
cp app/build/outputs/apk/dev/benchmark/app-dev-armeabi-v7a-benchmark-signed.apk Komikku-armeabi-v7a-dev-${{ github.run_number }}.apk
sha=`sha256sum Komikku-armeabi-v7a-dev-${{ github.run_number }}.apk | awk '{ print $1 }'`
echo "APK_ARMEABI_V7A_SHA=$sha" >> $GITHUB_ENV
cp app/build/outputs/apk/dev/benchmark/app-dev-x86-benchmark-signed.apk Komikku-x86-dev-${{ github.run_number }}.apk
sha=`sha256sum Komikku-x86-dev-${{ github.run_number }}.apk | awk '{ print $1 }'`
echo "APK_X86_SHA=$sha" >> $GITHUB_ENV
cp app/build/outputs/apk/dev/benchmark/app-dev-x86_64-benchmark-signed.apk Komikku-x86_64-dev-${{ github.run_number }}.apk
sha=`sha256sum Komikku-x86_64-dev-${{ github.run_number }}.apk | awk '{ print $1 }'`
echo "APK_X86_64_SHA=$sha" >> $GITHUB_ENV
- name: Create release
if: ${{ ! startsWith(github.ref, 'refs/tags/') && github.repository == 'komikku-app/komikku' }}
uses: softprops/action-gh-release@v1
with:
tag_name: dev-${{ github.run_number }}
target_commitish: ${{ github.ref }}
name: Komikku Development Benchmark Build ${{ github.run_number }}
body: |
### Commits
https://github.com/komikku-app/komikku/compare/${{ env.PREV_RELEASE_SHA }}...${{ env.CURRENT_SHA }}
${{ env.COMMIT_LOGS }}
---
### Checksums
| Variant | SHA-256 |
| ------- | ------- |
| Universal | ${{ env.APK_UNIVERSAL_SHA }} |
| arm64-v8a | ${{ env.APK_ARM64_V8A_SHA }} |
| armeabi-v7a | ${{ env.APK_ARMEABI_V7A_SHA }} |
| x86 | ${{ env.APK_X86_SHA }} |
| x86_64 | ${{ env.APK_X86_64_SHA }} |
files: |
Komikku-dev-${{ github.run_number }}.apk
Komikku-arm64-v8a-dev-${{ github.run_number }}.apk
Komikku-armeabi-v7a-dev-${{ github.run_number }}.apk
Komikku-x86-dev-${{ github.run_number }}.apk
Komikku-x86_64-dev-${{ github.run_number }}.apk
draft: false
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -1,26 +1,74 @@
name: Preview Builder name: Preview Builder
on: on:
push: # Dispatch or Manual triggers
branches: workflow_dispatch:
- master
paths: # push:
- '**' # branches:
- '!**.md' # - master
- '!.github/**' # paths:
- '.github/scripts/**' # - '**'
- '.github/workflows/**' # - '!**.md'
# - '!.github/**'
# - '.github/scripts/**'
# - '.github/workflows/**'
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true cancel-in-progress: true
jobs: jobs:
build: prepare-build:
name: Build preview app if: github.ref == 'refs/tags/master' && github.repository == 'komikku-app/komikku'
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs:
COMMIT_COUNT: ${{ steps.prepare_env.outputs.COMMIT_COUNT }}
CURRENT_SHA: ${{ steps.prepare_env.outputs.CURRENT_SHA }}
PREV_RELEASE_SHA: ${{ steps.prepare_env.outputs.PREV_RELEASE_SHA }}
COMMIT_LOGS: ${{ steps.prepare_env.outputs.COMMIT_LOGS }}
TAG_PREFIX: r
ARTIFACTS_PREFIX: standard/preview/app-standard
steps: steps:
- name: Clone repo - name: Get tag name
id: get_tag
run: |
set -x
echo "VERSION_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT
- name: Clone Repository (${{ steps.get_tag.outputs.VERSION_TAG }})
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Prepare env
id: prepare_env
run: |
set -e
commit_count=$(git rev-list --count HEAD)
echo "COMMIT_COUNT=$commit_count" >> $GITHUB_OUTPUT
current_sha=$(git rev-parse --short HEAD)
echo "CURRENT_SHA=$current_sha" >> $GITHUB_OUTPUT
prev_release_sha=$(git log --oneline --decorate --tags --no-walk --pretty='%C(auto)%h' | head -n 1)
echo "PREV_RELEASE_SHA=$prev_release_sha" >> $GITHUB_OUTPUT
echo "COMMIT_LOGS<<{delimiter}
$(curl -H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/komikku-app/komikku/compare/$prev_release_sha...$current_sha" \
| jq '[.commits[]|{message:(.commit.message | split("\n")), username:.author.login}]' \
| jq -r '.[]|"- \(.message | first) (@\(.username))"')
{delimiter}" >> $GITHUB_OUTPUT
build-app:
runs-on: ubuntu-latest
needs: prepare-build
steps:
- name: Clone Repository (r${{ needs.prepare-build.outputs.COMMIT_COUNT }})
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
@ -37,105 +85,95 @@ jobs:
with: with:
java-version: 17 java-version: 17
distribution: temurin distribution: temurin
- name: Prepare build
run: |
set -e
git fetch --tags
prev_release_sha=$(git log --oneline --decorate --tags --no-walk --pretty='%C(auto)%h' | head -n 1)
echo "PREV_RELEASE_SHA=$prev_release_sha" >> $GITHUB_ENV
current_sha=$(git log -1 --pretty='%C(auto)%h' | head -n 1)
echo "CURRENT_SHA=$current_sha" >> $GITHUB_ENV
echo "COMMIT_LOGS<<{delimiter}
$(curl -H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/komikku-app/komikku/compare/$prev_release_sha...$current_sha" \
| jq '[.commits[]|{message:(.commit.message | split("\n")), username:.author.login}]' \
| jq -r '.[]|"- \(.message | first) (@\(.username))"')
{delimiter}" >> $GITHUB_ENV
- name: Set CHANGELOG
run: |
changelog="$(git log ${{ env.PREV_RELEASE_SHA }}..${{ env.CURRENT_SHA }} --pretty=format:'{{changelogtext}}%s (@%an){{!changelogtext}}')"
changelog="${changelog//$'%'/%25}"
changelog="${changelog//$'\n'/}"
changelog="${changelog//$'\r'/}"
changelog="${changelog//$'<'/}"
changelog="${changelog//$'>'/}"
changelog="${changelog//$'&'/}"
changelog="$(echo $changelog | sed -e 's/{{changelogtext}}/<changelogtext>/g')"
changelog="$(echo $changelog | sed -e 's/{{!changelogtext}}/<\/changelogtext>/g')"
changelog="<?xml version=\"1.0\" encoding=\"utf-8\"?><changelog bulletedList=\"true\"><changelogversion versionName=\"${{ github.run_number }}\" changeDate=\"\">$changelog</changelogversion></changelog>"
echo "CHANGELOG=$changelog" >> $GITHUB_ENV
- name: Write google-services.json - name: Write google-services.json
uses: DamianReeves/write-file-action@v1.3 uses: DamianReeves/write-file-action@v1.3
with: with:
path: app/google-services.json path: app/google-services.json
contents: ${{ secrets.GOOGLE_SERVICES_TEXT }} contents: ${{ secrets.GOOGLE_SERVICES_JSON }}
write-mode: overwrite write-mode: overwrite
- name: Write client_secrets.json - name: Write client_secrets.json
uses: DamianReeves/write-file-action@v1.3 uses: DamianReeves/write-file-action@v1.3
with: with:
path: app/src/main/assets/client_secrets.json path: app/src/main/assets/client_secrets.json
contents: ${{ secrets.CLIENT_SECRETS_TEXT }} contents: ${{ secrets.GOOGLE_CLIENT_SECRETS_JSON }}
write-mode: overwrite write-mode: overwrite
- name: Build app # - name: Build app and run unit tests
if: ${{ ! startsWith(github.ref, 'refs/tags/') && github.repository == 'komikku-app/komikku' }} # uses: gradle/gradle-command-action@v2
run: ./gradlew assembleStandardRelease testStandardReleaseUnitTest --stacktrace # with:
# arguments: detekt assembleStandardPreview testStandardPreviewUnitTest
- name: Sign Android Release - name: Build Preview app and run unit tests
if: ${{ ! startsWith(github.ref, 'refs/tags/') && github.repository == 'komikku-app/komikku' }} run: ./gradlew assembleStandardPreview testStandardPreviewUnitTest --stacktrace
uses: r0adkll/sign-android-release@v1
- name: Upload artifacts
uses: actions/upload-artifact@v4
with: with:
releaseDirectory: app/build/outputs/apk/standard/release path: "**/*.apk"
retention-days: 1
release-app:
runs-on: ubuntu-latest
needs:
- prepare-build
- build-app
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true
- name: Setup Android SDK
run: |
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "build-tools;29.0.3"
- name: Sign APK
uses: r0adkll/sign-android-release@349ebdef58775b1e0d8099458af0816dc79b6407 # v1
with:
releaseDirectory: app/build/outputs/apk/standard/preview
signingKeyBase64: ${{ secrets.SIGNING_KEY }} signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }} alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }} keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Clean up build artifacts - name: Get SHA & clean up build artifacts
if: ${{ ! startsWith(github.ref, 'refs/tags/') && github.repository == 'komikku-app/komikku' }} id: get_sha
run: | run: |
set -e set -e
mv app/build/outputs/apk/standard/release/app-standard-universal-release-unsigned-signed.apk Komikku-pre-${{ github.run_number }}.apk mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-universal-preview-signed.apk Komikku-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
sha=`sha256sum Komikku-pre-${{ github.run_number }}.apk | awk '{ print $1 }'` sha=`sha256sum Komikku-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk | awk '{ print $1 }'`
echo "APK_UNIVERSAL_SHA=$sha" >> $GITHUB_ENV echo "APK_UNIVERSAL_SHA=$sha" >> $GITHUB_OUTPUT
cp app/build/outputs/apk/standard/release/app-standard-arm64-v8a-release-unsigned-signed.apk Komikku-arm64-v8a-pre-${{ github.run_number }}.apk mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-arm64-v8a-preview-signed.apk Komikku-arm64-v8a-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
sha=`sha256sum Komikku-arm64-v8a-pre-${{ github.run_number }}.apk | awk '{ print $1 }'` sha=`sha256sum Komikku-arm64-v8a-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk | awk '{ print $1 }'`
echo "APK_ARM64_V8A_SHA=$sha" >> $GITHUB_ENV echo "APK_ARM64_V8A_SHA=$sha" >> $GITHUB_OUTPUT
cp app/build/outputs/apk/standard/release/app-standard-armeabi-v7a-release-unsigned-signed.apk Komikku-armeabi-v7a-pre-${{ github.run_number }}.apk mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-armeabi-v7a-preview-signed.apk Komikku-armeabi-v7a-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
sha=`sha256sum Komikku-armeabi-v7a-pre-${{ github.run_number }}.apk | awk '{ print $1 }'` sha=`sha256sum Komikku-armeabi-v7a-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk | awk '{ print $1 }'`
echo "APK_ARMEABI_V7A_SHA=$sha" >> $GITHUB_ENV echo "APK_ARMEABI_V7A_SHA=$sha" >> $GITHUB_OUTPUT
cp app/build/outputs/apk/standard/release/app-standard-x86-release-unsigned-signed.apk Komikku-x86-pre-${{ github.run_number }}.apk mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-x86-preview-signed.apk Komikku-x86-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
sha=`sha256sum Komikku-x86-pre-${{ github.run_number }}.apk | awk '{ print $1 }'` sha=`sha256sum Komikku-x86-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk | awk '{ print $1 }'`
echo "APK_X86_SHA=$sha" >> $GITHUB_ENV echo "APK_X86_SHA=$sha" >> $GITHUB_OUTPUT
cp app/build/outputs/apk/standard/release/app-standard-x86_64-release-unsigned-signed.apk Komikku-x86_64-pre-${{ github.run_number }}.apk mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-x86_64-preview-signed.apk Komikku-x86_64-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
sha=`sha256sum Komikku-x86_64-pre-${{ github.run_number }}.apk | awk '{ print $1 }'` sha=`sha256sum Komikku-x86_64-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk | awk '{ print $1 }'`
echo "APK_X86_64_SHA=$sha" >> $GITHUB_ENV echo "APK_X86_64_SHA=$sha" >> $GITHUB_OUTPUT
- name: Create release - name: Create release
if: ${{ ! startsWith(github.ref, 'refs/tags/') && github.repository == 'komikku-app/komikku' }} uses: softprops/action-gh-release@9d7c94cfd0a1f3ed45544c887983e9fa900f0564 # v2.0.4
uses: softprops/action-gh-release@v1
with: with:
tag_name: pre-release-${{ github.run_number }} tag_name: ${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}
name: Komikku Preview Build ${{ github.run_number }} name: Komikku Preview ${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}
body: | body: |
### Commits ### Commits
https://github.com/komikku-app/komikku/compare/${{ env.PREV_RELEASE_SHA }}...${{ env.CURRENT_SHA }} https://github.com/komikku-app/komikku/compare/${{ needs.prepare-build.outputs.PREV_RELEASE_SHA }}...${{ needs.prepare-build.outputs.CURRENT_SHA }}
${{ env.COMMIT_LOGS }} ${{ needs.prepare-build.outputs.COMMIT_LOGS }}
--- ---
@ -143,18 +181,20 @@ jobs:
| Variant | SHA-256 | | Variant | SHA-256 |
| ------- | ------- | | ------- | ------- |
| Universal | ${{ env.APK_UNIVERSAL_SHA }} | | Universal | ${{ steps.get_sha.outputs.APK_UNIVERSAL_SHA }} |
| arm64-v8a | ${{ env.APK_ARM64_V8A_SHA }} | | arm64-v8a | ${{ steps.get_sha.outputs.APK_ARM64_V8A_SHA }} |
| armeabi-v7a | ${{ env.APK_ARMEABI_V7A_SHA }} | | armeabi-v7a | ${{ steps.get_sha.outputs.APK_ARMEABI_V7A_SHA }} |
| x86 | ${{ env.APK_X86_SHA }} | | x86 | ${{ steps.get_sha.outputs.APK_X86_SHA }} |
| x86_64 | ${{ env.APK_X86_64_SHA }} | | x86_64 | ${{ steps.get_sha.outputs.APK_X86_64_SHA }} |
## If you are unsure which apk to download then go with Komikku-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
files: | files: |
Komikku-pre-${{ github.run_number }}.apk Komikku-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
Komikku-arm64-v8a-pre-${{ github.run_number }}.apk Komikku-arm64-v8a-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
Komikku-armeabi-v7a-pre-${{ github.run_number }}.apk Komikku-armeabi-v7a-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
Komikku-x86-pre-${{ github.run_number }}.apk Komikku-x86-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
Komikku-x86_64-pre-${{ github.run_number }}.apk Komikku-x86_64-${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}.apk
draft: true draft: true
prerelease: false prerelease: true
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -3,57 +3,37 @@ on:
push: push:
tags: tags:
- v* - v*
# Dispatch or Manual triggers
workflow_dispatch:
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true cancel-in-progress: true
jobs: jobs:
build: build-app:
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'komikku-app/komikku'
name: Build release app name: Build release app
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs:
VERSION_TAG: ${{ steps.get_tag.outputs.VERSION_TAG }}
steps: steps:
- name: Clone repo - name: Get tag name
id: get_tag
run: |
set -x
echo "VERSION_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT
- name: Clone Repository (${{ steps.get_tag.outputs.VERSION_TAG }})
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Prepare build
run: |
set -e
git fetch --tags
prev_release_sha=$(git log --oneline --decorate --tags --no-walk --pretty='%C(auto)%h' | head -n 2 | tail -1)
echo "PREV_RELEASE_SHA=$prev_release_sha" >> $GITHUB_ENV
current_sha=$(git log --oneline --decorate --tags --no-walk --pretty='%C(auto)%h' | head -n 1)
echo "CURRENT_SHA=$current_sha" >> $GITHUB_ENV
echo "COMMIT_LOGS<<{delimiter}
$(curl -H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/komikku-app/komikku/compare/$prev_release_sha...$current_sha" \
| jq '[.commits[]|{message:(.commit.message | split("\n")), username:.author.login}]' \
| jq -r '.[]|"- \(.message | first) (@\(.username))"')
{delimiter}" >> $GITHUB_ENV
- name: Set CHANGELOG
run: |
changelog="$(git log ${{ env.PREV_RELEASE_SHA }}..${{ env.CURRENT_SHA }} --pretty=format:'{{changelogtext}}%s (@%an){{!changelogtext}}')"
changelog="${changelog//$'%'/%25}"
changelog="${changelog//$'\n'/}"
changelog="${changelog//$'\r'/}"
changelog="${changelog//$'<'/}"
changelog="${changelog//$'>'/}"
changelog="${changelog//$'&'/}"
changelog="$(echo $changelog | sed -e 's/{{changelogtext}}/<changelogtext>/g')"
changelog="$(echo $changelog | sed -e 's/{{!changelogtext}}/<\/changelogtext>/g')"
changelog="<?xml version=\"1.0\" encoding=\"utf-8\"?><changelog bulletedList=\"true\"><changelogversion versionName=\"${{ github.run_number }}\" changeDate=\"\">$changelog</changelogversion></changelog>"
echo "CHANGELOG=$changelog" >> $GITHUB_ENV
- name: Validate Gradle Wrapper - name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v3 uses: gradle/actions/wrapper-validation@v3
- name: Set up gradle
uses: gradle/actions/setup-gradle@v3
- name: Setup Android SDK - name: Setup Android SDK
run: | run: |
@ -63,41 +43,52 @@ jobs:
uses: actions/setup-java@v4 uses: actions/setup-java@v4
with: with:
java-version: 17 java-version: 17
distribution: adopt distribution: temurin
- name: Set up gradle
uses: gradle/actions/setup-gradle@v3
# SY <--
- name: Write google-services.json - name: Write google-services.json
uses: DamianReeves/write-file-action@v1.3 uses: DamianReeves/write-file-action@v1.3
with: with:
path: app/google-services.json path: app/google-services.json
contents: ${{ secrets.GOOGLE_SERVICES_TEXT }} contents: ${{ secrets.GOOGLE_SERVICES_JSON }}
write-mode: overwrite write-mode: overwrite
- name: Write client_secrets.json - name: Write client_secrets.json
uses: DamianReeves/write-file-action@v1.3 uses: DamianReeves/write-file-action@v1.3
with: with:
path: app/src/main/assets/client_secrets.json path: app/src/main/assets/client_secrets.json
contents: ${{ secrets.CLIENT_SECRETS_TEXT }} contents: ${{ secrets.GOOGLE_CLIENT_SECRETS_JSON }}
write-mode: overwrite write-mode: overwrite
# SY -->
# - name: Build app and run unit tests
# uses: gradle/gradle-command-action@v2
# with:
# arguments: detekt assembleStandardRelease testStandardReleaseUnitTest
- name: Build app and run unit tests - name: Build app and run unit tests
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'komikku-app/komikku'
run: ./gradlew assembleStandardRelease testStandardReleaseUnitTest --stacktrace run: ./gradlew assembleStandardRelease testStandardReleaseUnitTest --stacktrace
# Sign APK and create release for tags - name: Upload artifacts
- name: Get tag name uses: actions/upload-artifact@v4
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'komikku-app/komikku' with:
path: "**/*.apk"
retention-days: 1
release-app:
runs-on: ubuntu-latest
needs:
- build-app
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true
- name: Setup Android SDK
run: | run: |
set -x ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "build-tools;29.0.3"
echo "VERSION_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
- name: Sign APK - name: Sign APK
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'komikku-app/komikku' uses: r0adkll/sign-android-release@349ebdef58775b1e0d8099458af0816dc79b6407 # v1
uses: r0adkll/sign-android-release@v1
with: with:
releaseDirectory: app/build/outputs/apk/standard/release releaseDirectory: app/build/outputs/apk/standard/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }} signingKeyBase64: ${{ secrets.SIGNING_KEY }}
@ -105,68 +96,57 @@ jobs:
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }} keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Clean up build artifacts - name: Get SHA & clean up build artifacts
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'komikku-app/komikku' id: get_sha
run: | run: |
set -e set -e
mv app/build/outputs/apk/standard/release/app-standard-universal-release-unsigned-signed.apk Komikku-${{ env.VERSION_TAG }}.apk mv app/build/outputs/apk/standard/release/app-standard-universal-release-unsigned-signed.apk Komikku-${{ needs.build-app.outputs.VERSION_TAG }}.apk
sha=`sha256sum Komikku-${{ env.VERSION_TAG }}.apk | awk '{ print $1 }'` sha=`sha256sum Komikku-${{ needs.build-app.outputs.VERSION_TAG }}.apk | awk '{ print $1 }'`
echo "APK_UNIVERSAL_SHA=$sha" >> $GITHUB_ENV echo "APK_UNIVERSAL_SHA=$sha" >> $GITHUB_OUTPUT
cp app/build/outputs/apk/standard/release/app-standard-arm64-v8a-release-unsigned-signed.apk Komikku-arm64-v8a-${{ env.VERSION_TAG }}.apk mv app/build/outputs/apk/standard/release/app-standard-arm64-v8a-release-unsigned-signed.apk Komikku-arm64-v8a-${{ needs.build-app.outputs.VERSION_TAG }}.apk
sha=`sha256sum Komikku-arm64-v8a-${{ env.VERSION_TAG }}.apk | awk '{ print $1 }'` sha=`sha256sum Komikku-arm64-v8a-${{ needs.build-app.outputs.VERSION_TAG }}.apk | awk '{ print $1 }'`
echo "APK_ARM64_V8A_SHA=$sha" >> $GITHUB_ENV echo "APK_ARM64_V8A_SHA=$sha" >> $GITHUB_OUTPUT
cp app/build/outputs/apk/standard/release/app-standard-armeabi-v7a-release-unsigned-signed.apk Komikku-armeabi-v7a-${{ env.VERSION_TAG }}.apk mv app/build/outputs/apk/standard/release/app-standard-armeabi-v7a-release-unsigned-signed.apk Komikku-armeabi-v7a-${{ needs.build-app.outputs.VERSION_TAG }}.apk
sha=`sha256sum Komikku-armeabi-v7a-${{ env.VERSION_TAG }}.apk | awk '{ print $1 }'` sha=`sha256sum Komikku-armeabi-v7a-${{ needs.build-app.outputs.VERSION_TAG }}.apk | awk '{ print $1 }'`
echo "APK_ARMEABI_V7A_SHA=$sha" >> $GITHUB_ENV echo "APK_ARMEABI_V7A_SHA=$sha" >> $GITHUB_OUTPUT
cp app/build/outputs/apk/standard/release/app-standard-x86-release-unsigned-signed.apk Komikku-x86-${{ env.VERSION_TAG }}.apk mv app/build/outputs/apk/standard/release/app-standard-x86-release-unsigned-signed.apk Komikku-x86-${{ needs.build-app.outputs.VERSION_TAG }}.apk
sha=`sha256sum Komikku-x86-${{ env.VERSION_TAG }}.apk | awk '{ print $1 }'` sha=`sha256sum Komikku-x86-${{ needs.build-app.outputs.VERSION_TAG }}.apk | awk '{ print $1 }'`
echo "APK_X86_SHA=$sha" >> $GITHUB_ENV echo "APK_X86_SHA=$sha" >> $GITHUB_OUTPUT
cp app/build/outputs/apk/standard/release/app-standard-x86_64-release-unsigned-signed.apk Komikku-x86_64-${{ env.VERSION_TAG }}.apk mv app/build/outputs/apk/standard/release/app-standard-x86_64-release-unsigned-signed.apk Komikku-x86_64-${{ needs.build-app.outputs.VERSION_TAG }}.apk
sha=`sha256sum Komikku-x86_64-${{ env.VERSION_TAG }}.apk | awk '{ print $1 }'` sha=`sha256sum Komikku-x86_64-${{ needs.build-app.outputs.VERSION_TAG }}.apk | awk '{ print $1 }'`
echo "APK_X86_64_SHA=$sha" >> $GITHUB_ENV echo "APK_X86_64_SHA=$sha" >> $GITHUB_OUTPUT
- name: Create release - name: Create release
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'komikku-app/komikku' uses: softprops/action-gh-release@9d7c94cfd0a1f3ed45544c887983e9fa900f0564 # v2.0.4
uses: softprops/action-gh-release@v2
with: with:
tag_name: ${{ env.VERSION_TAG }} tag_name: ${{ needs.build-app.outputs.VERSION_TAG }}
name: Komikku ${{ env.VERSION_TAG }} name: Komikku ${{ needs.build-app.outputs.VERSION_TAG }}
body: | body: |
Change logs:
${{ env.CHANGE_LOGS }}
### Commits
https://github.com/komikku-app/komikku/compare/${{ env.PREV_RELEASE_SHA }}...${{ env.CURRENT_SHA }}
${{ env.COMMIT_LOGS }}
--- ---
### Checksums ### Checksums
| Variant | SHA-256 | | Variant | SHA-256 |
| ------- | ------- | | ------- | ------- |
| Universal | ${{ env.APK_UNIVERSAL_SHA }} | | Universal | ${{ steps.get_sha.outputs.APK_UNIVERSAL_SHA }} |
| arm64-v8a | ${{ env.APK_ARM64_V8A_SHA }} | | arm64-v8a | ${{ steps.get_sha.outputs.APK_ARM64_V8A_SHA }} |
| armeabi-v7a | ${{ env.APK_ARMEABI_V7A_SHA }} | | armeabi-v7a | ${{ steps.get_sha.outputs.APK_ARMEABI_V7A_SHA }} |
| x86 | ${{ env.APK_X86_SHA }} | | x86 | ${{ steps.get_sha.outputs.APK_X86_SHA }} |
| x86_64 | ${{ env.APK_X86_64_SHA }} | | x86_64 | ${{ steps.get_sha.outputs.APK_X86_64_SHA }} |
## If you are unsure which version to choose then go with Komikku-${{ env.VERSION_TAG }}.apk ## If you are unsure which apk to download then go with Komikku-${{ needs.build-app.outputs.VERSION_TAG }}.apk
files: | files: |
Komikku-${{ env.VERSION_TAG }}.apk Komikku-${{ needs.build-app.outputs.VERSION_TAG }}.apk
Komikku-arm64-v8a-${{ env.VERSION_TAG }}.apk Komikku-arm64-v8a-${{ needs.build-app.outputs.VERSION_TAG }}.apk
Komikku-armeabi-v7a-${{ env.VERSION_TAG }}.apk Komikku-armeabi-v7a-${{ needs.build-app.outputs.VERSION_TAG }}.apk
Komikku-x86-${{ env.VERSION_TAG }}.apk Komikku-x86-${{ needs.build-app.outputs.VERSION_TAG }}.apk
Komikku-x86_64-${{ env.VERSION_TAG }}.apk Komikku-x86_64-${{ needs.build-app.outputs.VERSION_TAG }}.apk
draft: false draft: true
prerelease: false prerelease: false
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -1,14 +1,27 @@
name: Remote Dispatch Action Initiator name: Remote Dispatch Preview Build
on: on:
# Dispatch or Manual triggers
workflow_dispatch:
push: push:
branches: branches:
- 'preview' - master
- develop
paths:
- '**'
- '!**.md'
- '!.github/**'
- '.github/scripts/**'
- '.github/workflows/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs: jobs:
trigger_preview_build: trigger_preview_build:
name: Trigger preview build name: Trigger preview build
if: ${{ github.ref == 'refs/heads/preview' }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -18,14 +31,28 @@ jobs:
- name: Validate Gradle Wrapper - name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v1 uses: gradle/wrapper-validation-action@v1
- name: Prepare build
id: prepare_build
run: |
set -e
commit_count=$(git rev-list --count HEAD)
echo "COMMIT_COUNT=$commit_count" >> $GITHUB_OUTPUT
- name: Create Tag - name: Create Tag
run: | run: |
git tag "preview-${{ github.run_number }}" git tag "r${{ steps.prepare_build.outputs.COMMIT_COUNT }}"
git push origin "preview-${{ github.run_number }}" git push origin "r${{ steps.prepare_build.outputs.COMMIT_COUNT }}"
- name: PING - Dispatch initiating repository event - name: Get branch names.
run: | id: branch_names
curl -X POST https://api.github.com/repos/komikku-app/KomikkuPreview/dispatches \ uses: tj-actions/branch-names@v8
-H 'Accept: application/vnd.github.everest-preview+json' \
-u ${{ secrets.ACCESS_TOKEN }} \ - name: Invoke workflow in preview repo
--data '{"event_type": "ping", "client_payload": { "repository": "'"$GITHUB_REPOSITORY"'" }}' uses: benc-uk/workflow-dispatch@v1
with:
workflow: build_app.yml
repo: komikku-app/komikku-preview
ref: "refs/heads/main"
token: "${{ secrets.BOT_PAT }}"
inputs: '{ "git-ref": "${{ steps.branch_names.outputs.current_branch }}" }'