breezy-weather/.github/workflows/push.yml

178 lines
9.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: Breezy Weather push CI
on:
push:
branches:
- main
tags:
- v*
jobs:
build:
runs-on: 'ubuntu-24.04'
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Set up JDK
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.0
with:
java-version: 17
distribution: temurin
- name: Set up gradle
uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # v5.0.0
- name: Lint
run: ./gradlew spotlessCheck
- name: Clean build
run: ./gradlew clean
- name: Assemble freenet flavor
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'breezy-weather/breezy-weather'
run: ./gradlew assembleFreenetRelease
- name: Sign APK (free networks)
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'breezy-weather/breezy-weather'
uses: r0adkll/sign-android-release@f30bdd30588842ac76044ecdbd4b6d0e3e813478
with:
releaseDirectory: app/build/outputs/apk/freenet/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
env:
BUILD_TOOLS_VERSION: '35.0.1'
- name: Save version tag in env
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'breezy-weather/breezy-weather'
run: |
set -x
echo "VERSION_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
- name: Prepare APKs with checksums, archive mapping.txt file (freenet)
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'breezy-weather/breezy-weather'
run: |
set -e
mv app/build/outputs/apk/freenet/release/app-freenet-universal-release-unsigned-signed.apk breezy-weather-${{ env.VERSION_TAG }}_freenet.apk
sha256=`sha256sum breezy-weather-${{ env.VERSION_TAG }}_freenet.apk | awk '{ print $1 }'`
echo "APK_UNIVERSAL_FREENET_SHA256=$sha256" >> $GITHUB_ENV
tar -czvf mapping-${{ env.VERSION_TAG }}_freenet.tar.gz --directory=app/build/outputs/mapping/freenetRelease/ mapping.txt
- name: Clean build
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'breezy-weather/breezy-weather'
run: ./gradlew clean
- name: Add secrets to local.properties
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'breezy-weather/breezy-weather'
run: |
set -e
echo "breezy.accu.key=$ACCU_WEATHER_KEY" >> local.properties
echo "breezy.aemet.key=$AEMET_KEY" >> local.properties
echo "breezy.atmoaura.key=$ATMO_AURA_KEY" >> local.properties
echo "breezy.atmofrance.key=$ATMO_FRANCE_KEY" >> local.properties
echo "breezy.atmograndest.key=$ATMO_GRAND_EST_KEY" >> local.properties
echo "breezy.atmohdf.key=$ATMO_HDF_KEY" >> local.properties
echo "breezy.atmosud.key=$ATMO_SUD_KEY" >> local.properties
echo "breezy.baiduip.key=$BAIDU_IP_LOCATION_AK" >> local.properties
echo "breezy.bmkg.key=$BMKG_KEY" >> local.properties
echo "breezy.cwa.key=$CWA_KEY" >> local.properties
echo "breezy.eccc.key=$ECCC_KEY" >> local.properties
echo "breezy.geonames.key=$GEO_NAMES_KEY" >> local.properties
echo "breezy.metie.key=$MET_IE_KEY" >> local.properties
echo "breezy.mf.jwtKey=$MF_WSFT_JWT_KEY" >> local.properties
echo "breezy.mf.key=$MF_WSFT_KEY" >> local.properties
echo "breezy.openweather.key=$OPEN_WEATHER_KEY" >> local.properties
env:
ACCU_WEATHER_KEY: ${{ secrets.ACCU_WEATHER_KEY }}
AEMET_KEY: ${{ secrets.AEMET_KEY }}
ATMO_AURA_KEY: ${{ secrets.ATMO_AURA_KEY }}
ATMO_FRANCE_KEY: ${{ secrets.ATMO_FRANCE_KEY }}
ATMO_GRAND_EST_KEY: ${{ secrets.ATMO_GRAND_EST_KEY }}
ATMO_HDF_KEY: ${{ secrets.ATMO_HDF_KEY }}
ATMO_SUD_KEY: ${{ secrets.ATMO_SUD_KEY }}
BAIDU_IP_LOCATION_AK: ${{ secrets.BAIDU_IP_LOCATION_AK }}
BMKG_KEY: ${{ secrets.BMKG_KEY }}
CWA_KEY: ${{ secrets.CWA_KEY }}
ECCC_KEY: ${{ secrets.ECCC_KEY }}
GEO_NAMES_KEY: ${{ secrets.GEO_NAMES_KEY }}
MET_IE_KEY: ${{ secrets.MET_IE_KEY }}
MF_WSFT_JWT_KEY: ${{ secrets.MF_WSFT_JWT_KEY }}
MF_WSFT_KEY: ${{ secrets.MF_WSFT_KEY }}
OPEN_WEATHER_KEY: ${{ secrets.OPEN_WEATHER_KEY }}
- name: Assemble basic flavor
run: ./gradlew assembleBasicRelease
- name: Delete local.properties
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'breezy-weather/breezy-weather'
run: |
set -e
rm local.properties
- name: Sign APK (basic)
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'breezy-weather/breezy-weather'
uses: r0adkll/sign-android-release@f30bdd30588842ac76044ecdbd4b6d0e3e813478
with:
releaseDirectory: app/build/outputs/apk/basic/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
env:
BUILD_TOOLS_VERSION: '35.0.1'
- name: Prepare APKs with checksums, archive mapping.txt file (basic)
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'breezy-weather/breezy-weather'
run: |
set -e
mv app/build/outputs/apk/basic/release/app-basic-universal-release-unsigned-signed.apk breezy-weather-${{ env.VERSION_TAG }}_standard.apk
sha256=`sha256sum breezy-weather-${{ env.VERSION_TAG }}_standard.apk | awk '{ print $1 }'`
echo "APK_UNIVERSAL_SHA256=$sha256" >> $GITHUB_ENV
mv app/build/outputs/apk/basic/release/app-basic-arm64-v8a-release-unsigned-signed.apk breezy-weather-arm64-v8a-${{ env.VERSION_TAG }}_standard.apk
sha256=`sha256sum breezy-weather-arm64-v8a-${{ env.VERSION_TAG }}_standard.apk | awk '{ print $1 }'`
echo "APK_ARM64_V8A_SHA256=$sha256" >> $GITHUB_ENV
mv app/build/outputs/apk/basic/release/app-basic-armeabi-v7a-release-unsigned-signed.apk breezy-weather-armeabi-v7a-${{ env.VERSION_TAG }}_standard.apk
sha256=`sha256sum breezy-weather-armeabi-v7a-${{ env.VERSION_TAG }}_standard.apk | awk '{ print $1 }'`
echo "APK_ARMEABI_V7A_SHA256=$sha256" >> $GITHUB_ENV
mv app/build/outputs/apk/basic/release/app-basic-x86-release-unsigned-signed.apk breezy-weather-x86-${{ env.VERSION_TAG }}_standard.apk
sha256=`sha256sum breezy-weather-x86-${{ env.VERSION_TAG }}_standard.apk | awk '{ print $1 }'`
echo "APK_X86_SHA256=$sha256" >> $GITHUB_ENV
mv app/build/outputs/apk/basic/release/app-basic-x86_64-release-unsigned-signed.apk breezy-weather-x86_64-${{ env.VERSION_TAG }}_standard.apk
sha256=`sha256sum breezy-weather-x86_64-${{ env.VERSION_TAG }}_standard.apk | awk '{ print $1 }'`
echo "APK_X86_64_SHA256=$sha256" >> $GITHUB_ENV
tar -czvf mapping-${{ env.VERSION_TAG }}_standard.tar.gz --directory=app/build/outputs/mapping/basicRelease/ mapping.txt
- name: Create release
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'breezy-weather/breezy-weather'
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0
with:
tag_name: ${{ env.VERSION_TAG }}
name: Breezy Weather ${{ env.VERSION_TAG }}
body: |
**If you dont know what to do, download and install `breezy-weather-${{ env.VERSION_TAG }}_standard.apk`, or check [INSTALL instructions](https://github.com/breezy-weather/breezy-weather/blob/main/INSTALL.md) for more details.**
---
### Checksums
| Flavor | Variant | SHA-256 |
|----------|-------------|----------------------------------------|
| Standard | Universal | ${{ env.APK_UNIVERSAL_SHA256 }} |
| Standard | arm64-v8a | ${{ env.APK_ARM64_V8A_SHA256 }} |
| Standard | armeabi-v7a | ${{ env.APK_ARMEABI_V7A_SHA256 }} |
| Standard | x86 | ${{ env.APK_X86_SHA256 }} |
| Standard | x86_64 | ${{ env.APK_X86_64_SHA256 }} |
| Freenet | Universal | ${{ env.APK_UNIVERSAL_FREENET_SHA256 }} |
files: |
breezy-weather-${{ env.VERSION_TAG }}_standard.apk
breezy-weather-arm64-v8a-${{ env.VERSION_TAG }}_standard.apk
breezy-weather-armeabi-v7a-${{ env.VERSION_TAG }}_standard.apk
breezy-weather-x86-${{ env.VERSION_TAG }}_standard.apk
breezy-weather-x86_64-${{ env.VERSION_TAG }}_standard.apk
mapping-${{ env.VERSION_TAG }}_standard.tar.gz
breezy-weather-${{ env.VERSION_TAG }}_freenet.apk
mapping-${{ env.VERSION_TAG }}_freenet.tar.gz
draft: true
prerelease: false