-
Notifications
You must be signed in to change notification settings - Fork 0
Gsdm 41 #22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gsdm 41 #22
Changes from all commits
3e41de8
a5c1852
337997d
0b60bf1
90964b0
fbdfb3e
76e59fe
444e39d
5d67200
cecad64
3a68e43
0d8a0c4
3b5fe18
9501906
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,168 @@ | ||||||
| name: 'Staging CI Run' | ||||||
|
|
||||||
| on: | ||||||
| pull_request: | ||||||
| branches: [ "master" ] | ||||||
|
|
||||||
| workflow_dispatch: | ||||||
| inputs: | ||||||
| run_unit_tests: | ||||||
| description: 'Run Unit Tests' | ||||||
| required: true | ||||||
| type: boolean | ||||||
| default: false | ||||||
| branch: | ||||||
| description: 'Branch to build' | ||||||
| required: true | ||||||
| default: 'master' | ||||||
| publish_to_firebase: | ||||||
| description: 'Publish to Firebase App Distribution' | ||||||
| required: true | ||||||
| type: boolean | ||||||
| default: true | ||||||
|
|
||||||
| jobs: | ||||||
| build: | ||||||
| runs-on: ubuntu-latest | ||||||
|
|
||||||
| steps: | ||||||
|
|
||||||
| - name: Show Action Info and Set App Selection | ||||||
| run: | | ||||||
| if [[ "${{ github.event_name }}" == "pull_request" ]]; then | ||||||
| echo "Pull Request triggered from ${{ github.head_ref }} to ${{ github.base_ref }} " | ||||||
| else | ||||||
| echo "Manual Workflow trigger from ${{ github.actor }} for ${{ github.event.inputs.branch }} branch " | ||||||
| fi | ||||||
|
|
||||||
| - name: Print Runner Info | ||||||
| run: | | ||||||
| echo "Runner Name: ${{ runner.name }}" | ||||||
| echo "Runner OS: ${{ runner.os }}" | ||||||
| echo "Runner Type: ${{ runner.arch }}" | ||||||
|
|
||||||
| - uses: actions/checkout@v4 | ||||||
| with: | ||||||
| ref: ${{ github.event.inputs.branch || github.ref }} | ||||||
|
|
||||||
| - name: Checkout specific submodule | ||||||
| run: | | ||||||
| git submodule init apps/mobile-offline-downloader-android | ||||||
| git submodule update apps/mobile-offline-downloader-android | ||||||
| cd apps/mobile-offline-downloader-android | ||||||
| git checkout surya-test | ||||||
|
|
||||||
| - name: Set up JDK 17 | ||||||
| uses: actions/setup-java@v4 | ||||||
| with: | ||||||
| java-version: '17' | ||||||
| distribution: 'temurin' | ||||||
| cache: gradle | ||||||
|
|
||||||
| - name: Create google-services.json | ||||||
| env: | ||||||
| GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES_JSON }} | ||||||
| run: | | ||||||
| pwd | ||||||
| echo $GOOGLE_SERVICES_JSON | base64 -di > open_source_data/student/google-services.json | ||||||
|
|
||||||
| - name: Setup Code | ||||||
| run: sh ./open_source.sh | ||||||
|
|
||||||
| - name: Create Secret.kt file | ||||||
| env: | ||||||
| SECRET_FILE: ${{ secrets.SECRET_FILE }} | ||||||
| run: | | ||||||
| mkdir -p app | ||||||
| echo $SECRET_FILE | base64 -di > apps/buildSrc/src/main/java/Secure.kt | ||||||
|
|
||||||
| - name: Grant execute permission for gradlew | ||||||
| run: | | ||||||
| cd apps | ||||||
| chmod +x gradlew | ||||||
|
|
||||||
| - name: Set version info | ||||||
| run: | | ||||||
| VERSION_CODE=${{ github.run_number }} | ||||||
| echo "VERSION_CODE: $VERSION_CODE" | ||||||
|
|
||||||
| if [[ "${{ github.event_name }}" == "pull_request" ]]; then | ||||||
| VERSION_NAME="PR-${{ github.event.pull_request.number }}" | ||||||
| else | ||||||
| VERSION_NAME="${{ github.event.inputs.branch }}" | ||||||
| fi | ||||||
| echo "VERSION_NAME: $VERSION_NAME" | ||||||
|
|
||||||
| sed -i "s/const val versionCode = [0-9]\+/const val versionCode = $VERSION_CODE/" buildSrc/src/main/java/Dependencies.kt | ||||||
| sed -i 's/const val versionName = "[^"]*"/const val versionName = "'"$VERSION_NAME"'"/' buildSrc/src/main/java/Dependencies.kt | ||||||
|
|
||||||
|
|
||||||
| - name: Run Unit Tests | ||||||
| if: ${{ github.event.inputs.run_unit_tests == 'true' }} | ||||||
| run: | | ||||||
| mkdir -p output | ||||||
| cd apps | ||||||
| ./gradlew :student:testTwouDebugUnitTest | ||||||
|
|
||||||
| - name: Upload Unit Test Report | ||||||
| if: ${{ github.event.inputs.run_unit_tests == 'true' }} | ||||||
| uses: actions/upload-artifact@v4 | ||||||
| with: | ||||||
| name: unit-test-report | ||||||
| path: | | ||||||
| app/build/test-results | ||||||
| app/build/reports/tests | ||||||
|
|
||||||
| - name: Summarize Unit Test Results | ||||||
| if: ${{ github.event.inputs.run_unit_tests == 'true' }} | ||||||
| run: | | ||||||
| echo "### Unit Test Summary" >> $GITHUB_STEP_SUMMARY | ||||||
| echo "" >> $GITHUB_STEP_SUMMARY | ||||||
| echo "**Test Results:**" >> $GITHUB_STEP_SUMMARY | ||||||
| grep -r "<testsuite" app/build/test-results | \ | ||||||
| sed -n 's/.*tests=\"\([0-9]*\)\" failures=\"\([0-9]*\)\" errors=\"\([0-9]*\)\".*/- Total: \1, Failures: \2, Errors: \3/p' >> $GITHUB_STEP_SUMMARY | ||||||
|
Comment on lines
+122
to
+123
|
||||||
|
|
||||||
| - name: Build Selected App(s) and zip apk output | ||||||
| run: | | ||||||
| EVENT_NAME="${{ github.event_name }}" | ||||||
|
|
||||||
| cd apps | ||||||
| ./gradlew :student:assembleTwouDebug | ||||||
|
|
||||||
| mkdir -p output | ||||||
| cp student/build/outputs/apk/twou/debug/student-twou-debug.apk output/ | ||||||
| zip -r app-staging-${{ github.run_number }}.zip output/ | ||||||
|
|
||||||
| - name: Upload APK ZIP | ||||||
| uses: actions/upload-artifact@v4 | ||||||
| with: | ||||||
| name: app-staging-${{ github.run_number }} | ||||||
| path: apps/app-staging-${{ github.run_number }}.zip | ||||||
|
|
||||||
| - name: Authenticate Firebase CLI | ||||||
| # if: ${{ github.event.inputs.publish_to_firebase == 'true' }} | ||||||
| run: | | ||||||
| echo "${{ secrets.FIREBASE_SERVICE_ACCOUNT_JSON }}" | base64 -d > firebase-key.json | ||||||
|
|
||||||
| - name: Distribute Degrees App via Firebase App Distribution | ||||||
| # if: ${{ github.event.inputs.publish_to_firebase == 'true' && (env.APP_SELECTION == 'getsmarter' || env.APP_SELECTION == 'both')}} | ||||||
| uses: gowthamraj281/firebase-app-distribution@v1 | ||||||
| with: | ||||||
| # The release binary file to upload. | ||||||
| file: apps/output/student-twou-debug.apk | ||||||
| # Your app's Firebase App ID. You can find the App ID in the Firebase console, on the General Settings page. | ||||||
| app: ${{ secrets.FIREBASE_APP_ID_DEGREES }} | ||||||
| # Path to the Google service account credentials file | ||||||
| credentials-file: firebase-key.json | ||||||
| # Release notes for this build. | ||||||
| release-notes: "Run link: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" | ||||||
| # The tester groups you want to invite (refer to Manage testers). Groups are specified using group aliases, which you can look up in the Firebase console. | ||||||
| groups: 'android-sonata' | ||||||
| # A flag you can include to print verbose log output. | ||||||
| debug: 'true' | ||||||
|
|
||||||
| - name: Cleanup sensitive files and directories | ||||||
| run: | | ||||||
| echo "Cleaning up sensitive files..." | ||||||
| rm -rf app | ||||||
|
||||||
| rm -rf app | |
| rm -rf apps |
Copilot
AI
Oct 21, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The buildSrc directory is located at 'apps/buildSrc' based on line 77, not at the repository root. This cleanup command targets the wrong path and won't remove the sensitive Secure.kt file created earlier.
| rm -rf buildSrc | |
| rm -rf apps/buildSrc |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,3 @@ | ||
| [submodule "android-vault"] | ||
| path = android-vault | ||
| url = git@github.com:instructure/android-vault.git | ||
| [submodule "apps/mobile-offline-downloader-android"] | ||
| path = apps/mobile-offline-downloader-android | ||
| url = git@github.com:2uinc/mobile-offline-downloader-android.git | ||
| url = https://github.com/2uinc/mobile-offline-downloader-android.git |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The artifact upload paths reference 'app/build/' but should reference 'apps/student/build/' to match the actual build output location. The test results and reports are generated in the student module within the apps directory.