| 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 |
| |
| - name: Set current date as env variable |
| run: echo "date_today=$(date +'%Y-%m-%d')" >> $GITHUB_ENV |
|
|
| |
| - 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 |
|
|
| |
| - 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 |
|
|
| |
| - name: Build apk debug project (APK) - ${{ env.main_project_module }} module |
| run: ./gradlew assembleDebug |
|
|
| |
| - name: Build apk release project (APK) - ${{ env.main_project_module }} module |
| run: ./gradlew assemble |
|
|
| |
| |
| - name: Build app bundle release (AAB) - ${{ env.main_project_module }} module |
| run: ./gradlew ${{ env.main_project_module }}:bundleRelease |
|
|
| |
| |
| - 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/ |
|
|
| |
| - 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/ |
|
|
| |
| - 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 |
| 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 |