From d35b0443de95d97f2f7de22ce6810aad1cbf4943 Mon Sep 17 00:00:00 2001 From: kyori19 Date: Fri, 20 Nov 2020 14:41:23 +0900 Subject: [PATCH] Configure automated build and release --- .github/workflows/build.yml | 106 +++++++++++++++++++++++++++++++ .github/workflows/release.yml | 38 +++++++++++ .github/workflows/test.yml | 23 ------- .gitignore | 1 - changelogs/v3.7.0/whatsnew-ja-JP | 2 + 5 files changed, 146 insertions(+), 24 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/release.yml delete mode 100644 .github/workflows/test.yml create mode 100644 changelogs/v3.7.0/whatsnew-ja-JP diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..01afeebc8 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,106 @@ +name: Build + +on: + push: + pull_request: + +jobs: + + test: + runs-on: ubuntu-latest + + steps: + + - uses: actions/checkout@v2 + + - uses: actions/setup-java@v1 + with: + java-version: 1.8 + + - run: | + chmod +x ./gradlew + ./gradlew :app:testBlueDebugUnitTest + + + build: + runs-on: ubuntu-latest + + steps: + + - uses: actions/checkout@v2 + + - uses: actions/setup-java@v1 + with: + java-version: 1.8 + + - run: | + chmod +x ./gradlew + ./gradlew :app:assembleBlueRelease + + - uses: r0adkll/sign-android-release@v1 + with: + releaseDirectory: app/build/outputs/apk/blue/release + signingKeyBase64: ${{ secrets.SIGNING_KEY }} + alias: ${{ secrets.ALIAS }} + keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} + keyPassword: ${{ secrets.KEY_PASSWORD }} + + - uses: actions/upload-artifact@v2 + with: + name: built-app + path: ${{ env.SIGNED_RELEASE_FILE }} + + + draft: + runs-on: ubuntu-latest + needs: [test, build] + if: github.event_name == 'push' && github.ref == 'refs/heads/master' + + steps: + + - uses: actions/checkout@v2 + + - env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + curl -H "Authorization: Bearer $GITHUB_TOKEN" https://api.github.com/repos/$GITHUB_REPOSITORY/releases \ + | tr '\r\n' ' ' \ + | jq '.[] | select(.draft == true) | .id' \ + | xargs -I '{}' \ + curl -X DELETE -H "Authorization: Bearer $GITHUB_TOKEN" https://api.github.com/repos/$GITHUB_REPOSITORY/releases/{} + + - run: | + DIR_TIMESTAMP=$(git log -1 --pretty="format:%ct" ./changelogs/) + for d in ./changelogs/*/; do + if [ $(git log -1 --pretty="format:%ct" "$d") = $DIR_TIMESTAMP ]; then + echo "CHANGELOG_DIR=$d" >> $GITHUB_ENV + echo "CHANGELOG_VERSION=$(basename -as / "$d")" >> $GITHUB_ENV + fi + done + + - uses: actions/create-release@v1 + id: draft + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ env.CHANGELOG_VERSION }} + release_name: Yuito ${{ env.CHANGELOG_VERSION }} + body_path: ${{ env.CHANGELOG_DIR }}whatsnew-ja-JP + draft: true + + - uses: actions/download-artifact@v1 + with: + name: built-app + + - run: | + cd ./built-app + echo "ARTIFACT_FILE=$(find . -type f -name "*.apk" | head -1 | gawk -F/ '{print $NF}')" >> $GITHUB_ENV + + - uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.draft.outputs.upload_url }} + asset_path: ./built-app/${{ env.ARTIFACT_FILE }} + asset_name: Yuito-${{ env.CHANGELOG_VERSION }}.apk + asset_content_type: application/vnd.android.package-archive diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..b368738e1 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,38 @@ +name: Release + +on: + release: + types: [released] + +jobs: + + release: + runs-on: ubuntu-latest + + steps: + + - uses: actions/checkout@v2 + + - uses: actions/setup-java@v1 + with: + java-version: 1.8 + + - run: | + chmod +x ./gradlew + ./gradlew :app:bundleBlueRelease + + - uses: r0adkll/sign-android-release@v1 + with: + releaseDirectory: app/build/outputs/bundle/blue/release + signingKeyBase64: ${{ secrets.SIGNING_KEY }} + alias: ${{ secrets.ALIAS }} + keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} + keyPassword: ${{ secrets.KEY_PASSWORD }} + + - uses: r0adkll/upload-google-play@v1 + with: + serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }} + packageName: net.accelf.yuito + releaseFile: ${{ env.SIGNED_RELEASE_FILE }} + track: production + whatsNewDirectory: changelogs/${{ github.event.release.tag_name }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index 8e5bd1a95..000000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: test - -on: - push: - branches: - - "*" - pull_request: - branches: - - "*" - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: set up JDK 1.8 - uses: actions/setup-java@v1 - with: - java-version: 1.8 - - name: Run JUnit Test - run: ./gradlew :app:testBlueDebugUnitTest diff --git a/.gitignore b/.gitignore index 38a221f15..4d7a1cd0d 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,3 @@ app/green app/blue app/src/main/gen lib/ -tuskyex_kyori.jks diff --git a/changelogs/v3.7.0/whatsnew-ja-JP b/changelogs/v3.7.0/whatsnew-ja-JP new file mode 100644 index 000000000..0c7fd2cad --- /dev/null +++ b/changelogs/v3.7.0/whatsnew-ja-JP @@ -0,0 +1,2 @@ +* (本家に)お知らせ機能実装(してきた) +* https://github.com/tuskyapp/Tusky/compare/17b7abb537d8214fac4b16c26c8c32ad7c3aed1e...fef4b8b07f6453b1c39715e23d23dc93b1bccb21