Skip to content

Commit 723c42e

Browse files
Merge branch 'develop'
2 parents 78c7099 + 696e7b3 commit 723c42e

File tree

96 files changed

+3119
-349
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+3119
-349
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: 'Allure Launch'
2+
description: 'Launches Allure TestOps job'
3+
inputs:
4+
allure-token:
5+
description: 'ALLURE_TOKEN'
6+
required: true
7+
cron:
8+
description: 'Is this a cron check?'
9+
default: 'false'
10+
runs:
11+
using: "composite"
12+
steps:
13+
- name: Launch Allure TestOps
14+
run: bundle exec fastlane allure_launch cron:${{ inputs.cron }}
15+
shell: bash
16+
env:
17+
ALLURE_TOKEN: ${{ inputs.allure-token }}
18+
GITHUB_EVENT: ${{ toJson(github.event) }}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: 'Setup Node'
2+
description: 'Setup Node'
3+
4+
inputs:
5+
node-version:
6+
description: The version of Node.js to use
7+
required: false
8+
default: '16'
9+
10+
runs:
11+
using: 'composite'
12+
steps:
13+
- name: Setup Node
14+
uses: actions/setup-node@v3
15+
with:
16+
node-version: ${{ inputs.node-version }}
17+
registry-url: https://registry.npmjs.org

.github/workflows/android.yml

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -97,29 +97,3 @@ jobs:
9797
run: bundle exec fastlane run_sonar_analysis
9898
env:
9999
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
100-
101-
androidTest-GMD:
102-
name: Android Test with GMD
103-
if: ${{ false }} # disable for now
104-
runs-on: ubuntu-latest
105-
timeout-minutes: 55
106-
107-
steps:
108-
- name: Checkout
109-
uses: actions/checkout@v3
110-
111-
- uses: ./.github/actions/setup-java
112-
113-
- uses: ./.github/actions/enable-kvm
114-
115-
# Sets gradle up
116-
- name: Setup Gradle
117-
uses: gradle/[email protected]
118-
119-
# Cleans managed device if previously settle and space currently is not available
120-
- name: Clean Managed Devices
121-
run: ./gradlew cleanManagedDevices --unused-only
122-
123-
- name: Run instrumented tests with GMD
124-
run: ./gradlew pixel2api31DebugAndroidTest -Dorg.gradle.workers.max=1 -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect" -Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true -Pandroid.experimental.testOptions.managedDevices.setupTimeoutMinutes=60
125-

.github/workflows/e2e-build.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: E2E Build
2+
3+
on:
4+
workflow_call:
5+
6+
env:
7+
BUILD_CACHE_AWS_REGION: ${{ secrets.BUILD_CACHE_AWS_REGION }}
8+
BUILD_CACHE_AWS_BUCKET: ${{ secrets.BUILD_CACHE_AWS_BUCKET }}
9+
BUILD_CACHE_AWS_ACCESS_KEY_ID: ${{ secrets.BUILD_CACHE_AWS_ACCESS_KEY_ID }}
10+
BUILD_CACHE_AWS_SECRET_KEY: ${{ secrets.BUILD_CACHE_AWS_SECRET_KEY }}
11+
12+
jobs:
13+
build:
14+
name: compose apks
15+
runs-on: ubuntu-24.04
16+
steps:
17+
- uses: actions/[email protected]
18+
- uses: ./.github/actions/setup-java
19+
- uses: ./.github/actions/enable-kvm
20+
- uses: ./.github/actions/setup-ruby
21+
- uses: ./.github/actions/gradle-cache
22+
- name: Build apks
23+
run: bundle exec fastlane build_e2e_test
24+
timeout-minutes: 30
25+
- name: Upload apks
26+
uses: actions/[email protected]
27+
with:
28+
name: apks
29+
path: |
30+
demo-app/build/outputs/apk/e2etesting/debug/*.apk
31+
demo-app/build/outputs/apk/androidTest/e2etesting/debug/*.apk
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
name: E2E Tests Nightly
2+
3+
on:
4+
schedule:
5+
# Runs "At 02:00 every night except weekends"
6+
- cron: '0 2 * * 1-5'
7+
8+
workflow_dispatch:
9+
10+
concurrency:
11+
group: ${{ github.ref }}
12+
cancel-in-progress: true
13+
14+
env:
15+
BUILD_CACHE_AWS_REGION: ${{ secrets.BUILD_CACHE_AWS_REGION }}
16+
BUILD_CACHE_AWS_BUCKET: ${{ secrets.BUILD_CACHE_AWS_BUCKET }}
17+
BUILD_CACHE_AWS_ACCESS_KEY_ID: ${{ secrets.BUILD_CACHE_AWS_ACCESS_KEY_ID }}
18+
BUILD_CACHE_AWS_SECRET_KEY: ${{ secrets.BUILD_CACHE_AWS_SECRET_KEY }}
19+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
20+
21+
jobs:
22+
build-compose-apks:
23+
name: Build
24+
uses: ./.github/workflows/e2e-build.yml
25+
26+
run-compose-tests-nightly:
27+
name: Test compose
28+
runs-on: ubuntu-24.04
29+
needs: build-compose-apks
30+
strategy:
31+
matrix:
32+
include:
33+
- android_api_level: 35
34+
- android_api_level: 34
35+
- android_api_level: 33
36+
- android_api_level: 32
37+
- android_api_level: 31
38+
- android_api_level: 28
39+
fail-fast: false
40+
env:
41+
ANDROID_API_LEVEL: ${{ matrix.android_api_level }}
42+
steps:
43+
- uses: actions/[email protected]
44+
- uses: actions/[email protected]
45+
continue-on-error: true
46+
with:
47+
name: apks
48+
- uses: ./.github/actions/setup-java
49+
- uses: ./.github/actions/enable-kvm
50+
- uses: ./.github/actions/setup-ruby
51+
- uses: ./.github/actions/allure-launch
52+
with:
53+
allure-token: ${{ secrets.ALLURE_TOKEN }}
54+
cron: true
55+
- name: Run tests
56+
uses: reactivecircus/android-emulator-runner@v2
57+
timeout-minutes: 120
58+
with:
59+
api-level: ${{ env.ANDROID_API_LEVEL }}
60+
disable-animations: true
61+
profile: pixel
62+
arch : x86_64
63+
emulator-options: ${{ vars.EMULATOR_OPTIONS }}
64+
script: bundle exec fastlane run_e2e_test
65+
- name: Allure TestOps Upload
66+
run: bundle exec fastlane allure_upload
67+
if: success() || failure()
68+
timeout-minutes: 10
69+
env:
70+
ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
71+
LAUNCH_ID: ${{ env.LAUNCH_ID }}
72+
- name: Allure TestOps Launch Removal
73+
run: bundle exec fastlane allure_launch_removal
74+
if: cancelled()
75+
env:
76+
ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
77+
LAUNCH_ID: ${{ env.LAUNCH_ID }}
78+
- name: Upload test results
79+
uses: actions/[email protected]
80+
if: failure()
81+
with:
82+
name: logs_${{ env.ANDROID_API_LEVEL }}
83+
path: |
84+
fastlane/recordings/*
85+
fastlane/video-buddy-server.log
86+
fastlane/video-buddy-console.log
87+
88+
slack:
89+
name: Slack Report
90+
runs-on: ubuntu-latest
91+
needs: [build-compose-apks, run-compose-tests-nightly]
92+
if: failure() && github.event_name == 'schedule'
93+
steps:
94+
- uses: 8398a7/action-slack@v3
95+
with:
96+
status: cancelled
97+
text: "You shall not pass!"
98+
job_name: "${{ github.workflow }}: ${{ github.job }}"
99+
fields: repo,commit,author,workflow
100+
env:
101+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_NIGHTLY_CHECKS }}

.github/workflows/e2e-test.yml

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
name: E2E Tests
2+
3+
on:
4+
pull_request:
5+
6+
workflow_dispatch:
7+
8+
concurrency:
9+
group: ${{ github.ref }}
10+
cancel-in-progress: true
11+
12+
env:
13+
BUILD_CACHE_AWS_REGION: ${{ secrets.BUILD_CACHE_AWS_REGION }}
14+
BUILD_CACHE_AWS_BUCKET: ${{ secrets.BUILD_CACHE_AWS_BUCKET }}
15+
BUILD_CACHE_AWS_ACCESS_KEY_ID: ${{ secrets.BUILD_CACHE_AWS_ACCESS_KEY_ID }}
16+
BUILD_CACHE_AWS_SECRET_KEY: ${{ secrets.BUILD_CACHE_AWS_SECRET_KEY }}
17+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18+
GITHUB_PR_NUM: ${{ github.event.pull_request.number }}
19+
20+
jobs:
21+
build-compose-apks:
22+
name: Build
23+
uses: ./.github/workflows/e2e-build.yml
24+
secrets: inherit
25+
26+
allure_testops_launch:
27+
name: Launch Allure TestOps
28+
runs-on: ubuntu-24.04
29+
needs: build-compose-apks
30+
outputs:
31+
launch_id: ${{ env.LAUNCH_ID }}
32+
steps:
33+
- uses: actions/[email protected]
34+
- uses: ./.github/actions/setup-ruby
35+
- uses: ./.github/actions/allure-launch
36+
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
37+
with:
38+
allure-token: ${{ secrets.ALLURE_TOKEN }}
39+
40+
run-compose-tests:
41+
name: Test compose
42+
runs-on: ubuntu-24.04
43+
needs:
44+
- build-compose-apks
45+
- allure_testops_launch
46+
strategy:
47+
matrix:
48+
include:
49+
- batch: 0
50+
fail-fast: false
51+
env:
52+
ANDROID_API_LEVEL: 34
53+
LAUNCH_ID: ${{ needs.allure_testops_launch.outputs.launch_id }}
54+
steps:
55+
- uses: actions/[email protected]
56+
- uses: actions/[email protected]
57+
continue-on-error: true
58+
with:
59+
name: apks
60+
- uses: ./.github/actions/setup-java
61+
- uses: ./.github/actions/enable-kvm
62+
- uses: ./.github/actions/setup-ruby
63+
- name: Run tests
64+
uses: reactivecircus/android-emulator-runner@v2
65+
timeout-minutes: 45
66+
with:
67+
api-level: ${{ env.ANDROID_API_LEVEL }}
68+
disable-animations: true
69+
profile: pixel
70+
arch : x86_64
71+
emulator-options: ${{ vars.EMULATOR_OPTIONS }}
72+
script: bundle exec fastlane run_e2e_test batch:${{ matrix.batch }} batch_count:${{ strategy.job-total }}
73+
- name: Allure TestOps Upload
74+
if: ${{ env.LAUNCH_ID != '' && (success() || failure()) }}
75+
run: bundle exec fastlane allure_upload
76+
env:
77+
ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
78+
LAUNCH_ID: ${{ env.LAUNCH_ID }}
79+
- name: Allure TestOps Launch Removal
80+
if: ${{ env.LAUNCH_ID != '' && cancelled() }}
81+
run: bundle exec fastlane allure_launch_removal
82+
env:
83+
ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
84+
LAUNCH_ID: ${{ env.LAUNCH_ID }}
85+
- name: Upload test results
86+
uses: actions/[email protected]
87+
if: failure()
88+
timeout-minutes: 10
89+
with:
90+
name: logs_${{ matrix.batch }}
91+
path: |
92+
fastlane/recordings/*
93+
fastlane/video-buddy-server.log
94+
fastlane/video-buddy-console.log

.github/workflows/sdk-size-checks.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ jobs:
2323
uses: actions/checkout@v3
2424
- uses: ./.github/actions/setup-java
2525
- uses: ./.github/actions/gradle-cache
26-
with:
27-
key-prefix: gradle-build
2826

2927
- name: Assemble release for metrics
3028
run: ./gradlew :metrics:$METRICS_PROJECT:assembleRelease
@@ -74,7 +72,7 @@ jobs:
7472
| SDK | Before | After | Difference | Status |
7573
|-|-|-|-|-|
7674
`;
77-
75+
7876
Object.keys(prSdkSizes).forEach(sdk => {
7977
const currentSize = currentSdkSizes[sdk] || 0;
8078
const prSize = prSdkSizes[sdk];
@@ -94,7 +92,7 @@ jobs:
9492
9593
commentBody += `| ${sdk} | ${currentSizeInMb} MB | ${prSizeInMb} MB | ${diffInMb} MB | ${status} |\n`;
9694
});
97-
95+
9896
// Post or update the PR comment
9997
10098
// Find existing comment

.github/workflows/sdk-size-updates.yml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@ jobs:
2929
persist-credentials: false
3030
- uses: ./.github/actions/setup-java
3131
- uses: ./.github/actions/gradle-cache
32-
with:
33-
key-prefix: gradle-build
3432

3533
- name: Assemble release and debug for metrics
3634
run: ./gradlew :metrics:$METRICS_PROJECT:assemble
@@ -55,7 +53,7 @@ jobs:
5553
echo "Warning: $baselineFile or $streamFile not found. Setting size to 0."
5654
size=0
5755
fi
58-
56+
5957
# Update JSON
6058
jq --arg module "$module" --arg variant "$variant" --argjson size "$size" \
6159
".\"$variant\".\"$module\" = $size" metrics.json > temp.json && mv temp.json metrics.json
@@ -64,7 +62,7 @@ jobs:
6462
6563
# Validate Generated JSON
6664
jq . metrics.json
67-
65+
6866
# Move temporary JSON file to the final file
6967
mv metrics.json $METRICS_FILE
7068
@@ -81,9 +79,9 @@ jobs:
8179
run: |
8280
git fetch origin $BRANCH_NAME
8381
git checkout $BRANCH_NAME
84-
82+
8583
git config user.name "github-actions[bot]"
86-
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
84+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
8785
8886
git add $METRICS_FILE README.md
8987
git commit -m "[skip ci] Update SDK sizes" || echo "No changes to commit"

.gitignore

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,16 @@ freeline/
6868
freeline_project_description.json
6969

7070
# fastlane
71+
!fastlane/.env
72+
fastlane/fastlane.log
7173
fastlane/report.xml
72-
fastlane/Preview.html
7374
fastlane/screenshots
7475
fastlane/test_output
75-
fastlane/readme.md
76+
fastlane/allurectl
77+
fastlane/recordings
78+
fastlane/test-parser.jar
79+
fastlane/AllTests.txt
80+
allure-results
7681

7782
# Version control
7883
vcs.xml
@@ -114,3 +119,8 @@ demo-app/src/production/play/
114119

115120
# Environment Variables
116121
.env.properties
122+
123+
# Stream Video Buddy
124+
video-buddy-server.log
125+
video-buddy-console.log
126+
video-buddy-session.json

Gemfile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ group :rubocop_dependencies do
1717
end
1818

1919
group :sinatra_dependencies do
20-
gem 'eventmachine'
21-
gem 'faye-websocket'
2220
gem 'puma'
2321
gem 'rackup'
2422
end

0 commit comments

Comments
 (0)