name: Release All CI env: main_project_module: app on: push: paths: - "Android/**" - "Extension/**" tags: - '*' workflow_dispatch: jobs: build-android: permissions: write-all runs-on: ubuntu-latest defaults: run: working-directory: Android 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 11 uses: actions/setup-java@v3 with: java-version: '11' distribution: 'temurin' cache: gradle - name: Create file run: cat /home/runner/work/Brain/Brain/Android/app/google-services.json | base64 - name: Putting data env: DATA: ${{ secrets.GOOGLE_SERVICES_JSON }} run: echo $DATA > /home/runner/work/Brain/Brain/Android/app/google-services.json - name: Grant execute permission for gradlew run: chmod +x gradlew # Run Tests Build - name: Run gradle tests run: ./gradlew test - name: Build with Gradle run: ./gradlew build - name: Archive lint results if: always() uses: actions/upload-artifact@v3 with: name: lint-report path: app/build/reports/lint-results-debug.html # 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@v2 with: name: android-debug path: Android/${{ 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@v2 with: name: android-release path: Android/${{ 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@v2 with: name: android-bundle path: Android/${{ env.main_project_module }}/build/outputs/bundle/release/ build-chrome-extension: permissions: write-all runs-on: ubuntu-latest defaults: run: working-directory: Extension steps: - uses: actions/checkout@v3 - name: Set up Node as v16. uses: actions/setup-node@v2.1.5 with: node-version: 16 - name: Create file run: | mkdir ./src/configs cat > /home/runner/work/Brain/Brain/Extension/src/configs/firebase-config.json - name: Putting data env: DATA: ${{ secrets.FIREBASE_CONFIGS }} run: echo $DATA > /home/runner/work/Brain/Brain/Extension/src/configs/firebase-config.json - name: Install Dependencies run: npm ci - name: Build run: | npm run build - name: Upload Artifact uses: actions/upload-artifact@v2 with: name: chrome-extension path: Extension/zip/ release: needs: [build-android, build-chrome-extension] permissions: write-all runs-on: ubuntu-latest steps: - name: Download All Artifacts uses: actions/download-artifact@v3 with: path: ./ - name: Display structure of downloaded files run: ls -R - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: Release ${{ github.ref }} draft: false prerelease: false - name: Upload Android Release uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: android-debug/app-debug.apk # Update this with the correct APK path asset_name: app-release-unsigned.apk asset_content_type: application/vnd.android.package-archive - name: Upload Chrome Extension Release id: upload-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: chrome-extension/rising-browser-1.0.0.zip asset_name: chrome-extension.zip asset_content_type: application/zip