name: Generate APK env: # The name of the main module repository main_project_module: app # The name of the Play Store playstore_name: Frogobox ID on: push: branches: - 'develop' # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 # Set Current Date As Env Variable - name: Set current date as env variable run: echo "date_today=$(date +'%Y-%m-%d')" >> $GITHUB_ENV # Set Repository Name As Env Variable - name: Set repository name as env variable run: echo "repository_name=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')" >> $GITHUB_ENV - name: Set Up JDK uses: actions/setup-java@v3 with: distribution: 'zulu' # See 'Supported distributions' for available options java-version: '17' cache: 'gradle' - name: Change wrapper permissions run: chmod +x ./gradlew # Run Tests Build - name: Run gradle tests run: ./gradlew test # Run Build Project - name: Build gradle project run: ./gradlew build # Create APK Debug - name: Build apk debug project (APK) - ${{ env.main_project_module }} module run: ./gradlew assembleDebug # Create APK Release - name: Build apk release project (APK) - ${{ env.main_project_module }} module run: ./gradlew assemble # Create Bundle AAB Release # Noted for main module build [main_project_module]:bundleRelease - name: Build app bundle release (AAB) - ${{ env.main_project_module }} module run: ./gradlew ${{ env.main_project_module }}:bundleRelease # Upload Artifact Build # Noted For Output [main_project_module]/build/outputs/apk/debug/ - name: Upload APK Debug - ${{ env.repository_name }} uses: actions/upload-artifact@v3 with: name: ${{ env.date_today }} - ${{ env.playstore_name }} - ${{ env.repository_name }} - APK(s) debug generated path: ${{ env.main_project_module }}/build/outputs/apk/debug/ # Noted For Output [main_project_module]/build/outputs/apk/release/ - name: Upload APK Release - ${{ env.repository_name }} uses: actions/upload-artifact@v3 with: name: ${{ env.date_today }} - ${{ env.playstore_name }} - ${{ env.repository_name }} - APK(s) release generated path: ${{ env.main_project_module }}/build/outputs/apk/release/ # Noted For Output [main_project_module]/build/outputs/bundle/release/ - name: Upload AAB (App Bundle) Release - ${{ env.repository_name }} uses: actions/upload-artifact@v3 with: name: ${{ env.date_today }} - ${{ env.playstore_name }} - ${{ env.repository_name }} - App bundle(s) AAB release generated path: ${{ env.main_project_module }}/build/outputs/bundle/release/