Skip to content

Update release process #1360

Update release process

Update release process #1360

Workflow file for this run

name: android-build
on:
push:
branches:
- main
- develop
tags:
- '[0-9]+.[0-9]+.[0-9]+'
pull_request:
types:
- opened
- synchronize
- labeled
- unlabeled
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up our JDK environment
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '17'
- name: Set up signing configuration
uses: ./.github/actions/setup-signing
with:
keystore: ${{ secrets.SIGNING_KEYSTORE }}
store-password: ${{ secrets.SIGNING_STORE_PASSWORD }}
key-alias: ${{ secrets.SIGNING_KEY_ALIAS }}
key-password: ${{ secrets.SIGNING_KEY_PASSWORD }}
- name: Run Android Linter
run: ./gradlew lintDebug
- name: Build
run: |
# Git SHA is equal to github.event.pull_request.head.sha for pull requests
# This value is unset if workflow has not been triggered by a pull request, use GITHUB_SHA instead
BRANCH_SHA=${{ github.event.pull_request.head.sha }}
COMMIT_SHA=${BRANCH_SHA:-$GITHUB_SHA}
./gradlew assemble -PversionNameSuffix="-${COMMIT_SHA::7}" -PversionCode=$GITHUB_RUN_NUMBER --stacktrace
- name: Store app artifacts
uses: actions/upload-artifact@v3
with:
name: app
path: app/build/outputs/apk/*/*/*.apk
- name: Store lib artifacts
uses: actions/upload-artifact@v3
with:
name: lib
path: lib/build/outputs/aar/*.aar
- name: Store theme-contract artifacts
uses: actions/upload-artifact@v3
with:
name: theme-contract
path: theme-contract/build/outputs/aar/*.aar
- name: Store theme-innovation-cup artifacts
uses: actions/upload-artifact@v3
with:
name: theme-innovation-cup
path: theme-innovation-cup/build/outputs/aar/*.aar
- name: Store theme-orange artifacts
uses: actions/upload-artifact@v3
with:
name: theme-orange
path: theme-orange/build/outputs/aar/*.aar
maven-central-release:
runs-on: ubuntu-latest
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
needs: build
environment:
name: maven-central-release
url: https://mvnrepository.com/artifact/com.orange.ods.android
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up our JDK environment
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '17'
- name: Set up signing configuration
uses: ./.github/actions/setup-signing
with:
keystore: ${{ secrets.SIGNING_KEYSTORE }}
store-password: ${{ secrets.SIGNING_STORE_PASSWORD }}
key-alias: ${{ secrets.SIGNING_KEY_ALIAS }}
key-password: ${{ secrets.SIGNING_KEY_PASSWORD }}
- name: Publish release to Maven Central
env:
GNUPG_SIGNING_KEY_ID: ${{ secrets.GNUPG_SIGNING_KEY_ID }}
GNUPG_SIGNING_PASSWORD: ${{ secrets.GNUPG_SIGNING_PASSWORD }}
GNUPG_SIGNING_SECRET_KEY: ${{ secrets.GNUPG_SIGNING_SECRET_KEY }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
run: ./gradlew publish
github-release:
runs-on: ubuntu-latest
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
needs: build
environment:
name: github-release
url: https://github.com/Orange-OpenSource/ods-android/releases
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up our JDK environment
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '17'
- name: Set up signing configuration
uses: ./.github/actions/setup-signing
with:
keystore: ${{ secrets.SIGNING_KEYSTORE }}
store-password: ${{ secrets.SIGNING_STORE_PASSWORD }}
key-alias: ${{ secrets.SIGNING_KEY_ALIAS }}
key-password: ${{ secrets.SIGNING_KEY_PASSWORD }}
- name: Publish release to GitHub
run: ./gradlew publishToGitHub
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
google-play-store-release:
runs-on: ubuntu-latest
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
needs: build
environment:
name: google-play-store-release
url: https://play.google.com/store/apps
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up our JDK environment
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '17'
- name: Publish release to Google Play Store
run: |
./gradlew assembleRelease bundleRelease
curl -F 'file=@app/build/outputs/bundle/prodRelease/app-prod-release.aab' https://oma-portal.orange.fr/oma/api/v1/external/applications/${{ secrets.OMA_APP_ID }}/artifacts -H "apiKey:${{ secrets.OMA_APP_TOKEN }}"
- name: Store Google Play Store artifacts
uses: actions/upload-artifact@v3
with:
name: google-play-store
path: |
app/build/outputs/apk/*/*/*.apk
app/build/outputs/bundle/*/*.aab