on: push: tags: - '*' name: Release jobs: test: name: Build and upload release runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@v4 - name: Set up Java environment uses: actions/setup-java@v4 with: java-version: 21 distribution: 'zulu' cache: 'gradle' - name: Decrypt keystore run: openssl aes-256-cbc -K ${{ secrets.encrypted_53968681344a_key }} -iv ${{ secrets.encrypted_53968681344a_iv }} -in _ci/keystore.jks.enc -out _ci/keystore.jks -d - name: Extract version code run: echo "VERSION_CODE=$(grep -o "^\s*versionCode\s*=\s*[0-9]\+" app/build.gradle.kts | awk '{ print $3 }' | tr -d \''"\\')" >> $GITHUB_ENV - name: Build app release & export licenses env: EVMAP_API_KEY: ${{ secrets.EVMAP_API_KEY }} GOINGELECTRIC_API_KEY: ${{ secrets.GOINGELECTRIC_API_KEY }} OPENCHARGEMAP_API_KEY: ${{ secrets.OPENCHARGEMAP_API_KEY }} CHARGEPRICE_API_KEY: ${{ secrets.CHARGEPRICE_API_KEY }} MAPBOX_API_KEY: ${{ secrets.MAPBOX_API_KEY }} JAWG_API_KEY: ${{ secrets.JAWG_API_KEY }} ARCGIS_API_KEY: ${{ secrets.ARCGIS_API_KEY }} GOOGLE_MAPS_API_KEY: ${{ secrets.GOOGLE_MAPS_API_KEY }} FRONYX_API_KEY: ${{ secrets.FRONYX_API_KEY }} ACRA_CRASHREPORT_CREDENTIALS: ${{ secrets.ACRA_CRASHREPORT_CREDENTIALS }} NOBIL_API_KEY: ${{ secrets.NOBIL_API_KEY }} KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEYSTORE_ALIAS: ${{ secrets.KEYSTORE_ALIAS }} KEYSTORE_ALIAS_PASSWORD: ${{ secrets.KEYSTORE_ALIAS_PASSWORD }} run: ./gradlew exportLibraryDefinitions assembleRelease --no-daemon - name: Export licenses in Appning format run: python3 _ci/export_licenses_appning.py - name: release uses: actions/create-release@v1 id: create_release with: draft: false prerelease: false release_name: ${{ steps.version.outputs.version }} tag_name: ${{ github.ref }} body_path: fastlane/metadata/android/en-US/changelogs/${{ env.VERSION_CODE }}.txt env: GITHUB_TOKEN: ${{ github.token }} - name: upload Google artifact uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: app/build/outputs/apk/googleNormal/release/app-google-normal-release.apk asset_name: app-google-normal-release.apk asset_content_type: application/vnd.android.package-archive - name: upload Foss artifact uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: app/build/outputs/apk/fossNormal/release/app-foss-normal-release.apk asset_name: app-foss-normal-release.apk asset_content_type: application/vnd.android.package-archive - name: upload Google Automotive artifact uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: app/build/outputs/apk/googleAutomotive/release/app-google-automotive-release.apk asset_name: app-google-automotive-release.apk asset_content_type: application/vnd.android.package-archive - name: upload Foss Automotive artifact uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: app/build/outputs/apk/fossAutomotive/release/app-foss-automotive-release.apk asset_name: app-foss-automotive-release.apk asset_content_type: application/vnd.android.package-archive - name: upload Licenses uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: app/build/generated/aboutLibraries/aboutlibraries.json asset_name: aboutlibraries.json asset_content_type: application/json - name: upload Licenses Appning uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: licenses_fossAutomotiveRelease_appning.csv asset_name: licenses_fossAutomotiveRelease_appning.csv asset_content_type: text/csv - name: upload Licenses Appning uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: licenses_fossNormalRelease_appning.csv asset_name: licenses_fossNormalRelease_appning.csv asset_content_type: text/csv - name: Trigger Website update run: | curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer ${{ github.token }}" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/ev-map/ev-map.github.io/dispatches \ -d "{\"event_type\": \"trigger-workflow\"}"