Skip to content
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

chore: Add a buildspec file for nightly tests #2180

Merged
merged 2 commits into from Dec 15, 2022
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
85 changes: 85 additions & 0 deletions scripts/nightly-buildspec.yml
@@ -0,0 +1,85 @@
version: 0.2
# This file is used as part of the build process implemented using AWS CodeBuild [1].
# The CodeBuild documentation [2] provides an introduction of the service and its capabilities. In general
# terms, it allows us to configure the actions executed when a build is triggered by a commit to the
# amplify-android GitHub repository.
#
# For the purposes of this repo, we're simply running a build by using "./gradlew build"
# command and in the post-build phase, we consolidate the JUnit report files in one location.
# In the reports section, we're instructing CodeBuild to publish those reports which can be
# viewed in the AWS CodeBuild console (Future work will be to publish those to Github for easier access).
#
# [1] - https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html
# [2] - https://docs.aws.amazon.com/codebuild/latest/userguide/planning.html
env:
shell: /bin/sh
phases:
install:
runtime-versions:
nodejs: 12
python: 3.8
java: corretto11
commands:
- echo 'Install phase starting'
- npm install -g xunit-viewer
- pip3 install junit-xml
### INSTALL ANDROID 31
- export ANDROID_TOOLS_FILENAME="commandlinetools-linux-9123335_latest.zip"
- wget https://dl.google.com/android/repository/$ANDROID_TOOLS_FILENAME -P ~ > /dev/null
- unzip ~/$ANDROID_TOOLS_FILENAME -d ~ > /dev/null 2>&1
- mkdir -p /usr/local/android-sdk-linux/cmdline-tools
- mv ~/cmdline-tools /usr/local/android-sdk-linux/cmdline-tools/latest
- export PATH=/usr/local/android-sdk-linux/cmdline-tools/latest:/usr/local/android-sdk-linux/cmdline-tools/latest/bin:/usr/local/android-sdk-linux/platform-tools:$PATH
- export ANDROID_SDK_ROOT=/usr/local/android-sdk-linux
- yes | sdkmanager --licenses > /dev/null
- sdkmanager "platform-tools" "platforms;android-31" > /dev/null
- sdkmanager "build-tools;31.0.0" > /dev/null
### END INSTALL ANDROID 31
finally:
- echo 'Install phase completed.'
pre_build:
commands:
- echo 'Pre-build phase starting'
- mkdir -p build/allTests
- |
if [[ -z "${CONFIG_SOURCE_BUCKET}" ]]; then
echo 'Pulling config files from Amplify'
JAVA_HOME=$JDK_11_HOME ./gradlew pullBackendConfigFromAmplify
else
echo 'Pulling config files from S3'
./scripts/pull_backend_config_from_s3 ${CONFIG_SOURCE_BUCKET}
fi
finally:
- echo 'Pre-build phase completed.'
build:
commands:
- echo 'Build phase starting.'
- JAVA_HOME=$JDK_11_HOME ./gradlew runNightlyTestsInDeviceFarmPool
finally:
- echo 'Build phase completed.'
post_build:
commands:
- echo 'Post-build phase starting'
- mkdir -p build/reports/instrumented
- xunit-viewer -r build/allTests -o build/reports/instrumented/${CODEBUILD_RESOLVED_SOURCE_VERSION}.html
finally:
- echo 'Post-build phase completed.'
reports:
amplify-android-devicefarm-tests:
files:
- '**/*'
base-directory: 'build/allTests'
discard-paths: no
file-format: JUNITXML
artifacts:
files:
- '**/*.apk'
name: AmplifyAndroidCatApks
discard-paths: yes
secondary-artifacts:
reports:
files:
- '**/*'
name: DevicefarmTestRunReport
base-directory: 'build/reports/instrumented'
discard-paths: no