Skip to content

Commit

Permalink
Merge pull request #365 from adobe/staging
Browse files Browse the repository at this point in the history
  • Loading branch information
praveek authored Jan 30, 2023
2 parents 37c24b4 + ac63b3b commit 13cad46
Show file tree
Hide file tree
Showing 1,036 changed files with 83,407 additions and 91,746 deletions.
187 changes: 151 additions & 36 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,58 +1,173 @@
# Use the latest 2.1 version of CircleCI pipeline process engine.
# See: https://circleci.com/docs/2.0/configuration-reference
# For a detailed guide to building and testing on Android, read the docs:
# https://circleci.com/docs/2.0/language-android/ for more details.
version: 2.1

# Orbs are reusable packages of CircleCI configuration that you may share across projects, enabling you to create encapsulated, parameterized commands, jobs, and executors that can be used across multiple projects.
# See: https://circleci.com/docs/2.0/orb-intro/
orbs:
android: circleci/[email protected]

# Define a job to be invoked later in a workflow.
# See: https://circleci.com/docs/2.0/configuration-reference/#jobs
jobs:
# Below is the definition of your job to build and test your app, you can rename and customize it as you want.
build-and-test:
# These next lines define the Android machine image executor.
# See: https://circleci.com/docs/2.0/executor-types/
build-and-unit-test:
executor:
name: android/android-machine
resource-class: large
tag: 2022.01.1

# Add steps to the job
# See: https://circleci.com/docs/2.0/configuration-reference/#steps
steps:
# Checkout the code as the first step.
- checkout
- run:
name: assemble-phone-release
name: Check format
command: make checkformat

- run:
name: Check style
command: make checkstyle

- run:
name: Assemble phone release
command: make assemble-phone-release

- run:
name: Verify Core APIs
command: make api-check

- run:
name: JavaDoc
command: make javadoc

- run:
name: unit-test
command: make unit-test
- store_artifacts:
path: code/android-core-library/build/reports/tests/testPhoneDebugUnitTest

- android/start-emulator-and-run-tests:
# It should match the name seen in the "sdkmanager --list" output
system-image: system-images;android-29;default;x86
# The command to be run, while waiting for emulator startup
post-emulator-launch-assemble-command: make assemble-phone
# The test command
test-command: make functional-test
- store_artifacts:
path: code/android-core-library/build/reports/androidTests/connected/flavors/PHONE

name: Install jitpack (core) to maven local
command: make core-publish-maven-local-jitpack

- run:
name: Install jitpack (signal) to maven local
command: make signal-publish-maven-local-jitpack

- run:
name: Install jitpack (lifecycle) to maven local
command: make lifecycle-publish-maven-local-jitpack

- run:
name: Install jitpack (identity) to maven local
command: make identity-publish-maven-local-jitpack

- run:
name: Download Codecov Uploader
command: |
curl -s https://codecov.io/bash > codecov;
VERSION=$(grep 'VERSION=\"[0-9\.]*\"' codecov | cut -d'"' -f2);
for i in 1 256 512
do
shasum -a $i -c --ignore-missing <(curl -s "https://raw.githubusercontent.com/codecov/codecov-bash/${VERSION}/SHA${i}SUM") ||
shasum -a $i -c <(curl -s "https://raw.githubusercontent.com/codecov/codecov-bash/${VERSION}/SHA${i}SUM" | grep -w "codecov")
done
- run:
name: Run Core unit tests
command: make core-unit-test-coverage

- store_test_results:
path: code/core/build/test-results/testPhoneDebugUnitTest

- run:
name: Upload Core unit test coverage
command: |
bash ./codecov -v -X s3 -c -D "./code/core/build/reports/coverage/test/phone/debug" -F unit-tests
- run:
name: Run Signal unit tests
command: make signal-unit-test-coverage

- store_test_results:
path: code/signal/build/test-results/testPhoneDebugUnitTest

- run:
name: Upload Signal coverage report
command: |
bash ./codecov -v -X s3 -c -D "./code/signal/build/reports/coverage/test/phone/debug" -F unit-tests
- run:
name: Run Lifecycle unit tests
command: make lifecycle-unit-test-coverage

- store_test_results:
path: code/lifecycle/build/test-results/testPhoneDebugUnitTest

- run:
name: Upload Lifecycle coverage report
command: |
bash ./codecov -v -X s3 -c -D "./code/lifecycle/build/reports/coverage/test/phone/debug" -F unit-tests
- run:
name: Run Identity unit tests
command: make identity-unit-test-coverage

- store_test_results:
path: code/identity/build/test-results/testPhoneDebugUnitTest

- run:
name: Upload Identity coverage report
command: |
bash ./codecov -v -X s3 -c -D "./code/identity/build/reports/coverage/test/phone/debug" -F unit-tests
functional-test:
executor:
name: android/android-machine
resource-class: large
tag: 2022.01.1

steps:
- checkout

- android/start-emulator-and-run-tests:
system-image: system-images;android-29;default;x86
post-emulator-launch-assemble-command: make assemble-phone
test-command: make functional-test-coverage

- run:
name: Download Codecov Uploader
command: |
curl -s https://codecov.io/bash > codecov;
VERSION=$(grep 'VERSION=\"[0-9\.]*\"' codecov | cut -d'"' -f2);
for i in 1 256 512
do
shasum -a $i -c --ignore-missing <(curl -s "https://raw.githubusercontent.com/codecov/codecov-bash/${VERSION}/SHA${i}SUM") ||
shasum -a $i -c <(curl -s "https://raw.githubusercontent.com/codecov/codecov-bash/${VERSION}/SHA${i}SUM" | grep -w "codecov")
done
- run:
name: Upload Core coverage report
command: |
bash ./codecov -v -X s3 -c -D "./code/core/build/reports/coverage/androidTest/phone/debug" -F functional-tests
- run:
name: Upload Signal coverage report
command: |
bash ./codecov -v -X s3 -c -D "./code/signal/build/reports/coverage/androidTest/phone/debug" -F functional-tests
- run:
name: Upload Lifecycle coverage report
command: |
bash ./codecov -v -X s3 -c -D "./code/lifecycle/build/reports/coverage/androidTest/phone/debug" -F functional-tests
integration-test:
executor:
name: android/android-machine
resource-class: large
tag: 2022.01.1

steps:
- checkout

- android/start-emulator-and-run-tests:
system-image: system-images;android-29;default;x86
post-emulator-launch-assemble-command: make assemble-phone
test-command: make integration-test

- store_test_results:
path: code/integration-tests/build/outputs/androidTest-results/connected

# Invoke jobs via workflows
# See: https://circleci.com/docs/2.0/configuration-reference/#workflows
workflows:
aepsdk-core-ci: # This is the name of the workflow, feel free to change it to better match your workflow.
# Inside the workflow, you define the jobs you want to run.
version: 2
aepsdk-core-ci:
jobs:
- build-and-test
- build-and-unit-test
- functional-test
- integration-test
88 changes: 88 additions & 0 deletions .github/workflows/maven-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Publish Package to the Maven Central Repository
on:
workflow_dispatch:
inputs:
release_core:
required: false
type: boolean
default: false
description: Release Core

release_identity:
required: false
type: boolean
default: false
description: Release Identity

release_lifecycle:
required: false
type: boolean
default: false
description: Release Lifecycle

release_signal:
required: false
type: boolean
default: false
description: Release Signal

jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Java
uses: actions/setup-java@v1
with:
java-version: 11

- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle

- name: Import GPG key
env:
GPG_SECRET_KEYS: ${{ secrets.GPG_SECRET_KEYS }}
GPG_OWNERTRUST: ${{ secrets.GPG_OWNERTRUST }}
run: |
echo $GPG_SECRET_KEYS | base64 --decode | gpg --import --no-tty --batch --yes
echo $GPG_OWNERTRUST | base64 --decode | gpg --import-ownertrust --no-tty --batch --yes
- name: Publish Core to maven central repository
if: ${{ inputs.release_core }}
run: make core-publish-main
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}

- name: Publish Identity to maven central repository
if: ${{ inputs.release_identity }}
run: make identity-publish-main
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}

- name: Publish Lifecycle to maven central repository
if: ${{ inputs.release_lifecycle }}
run: make lifecycle-publish-main
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}

- name: Publish Signal to maven central repository
if: ${{ inputs.release_signal }}
run: make signal-publish-main
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}
88 changes: 88 additions & 0 deletions .github/workflows/maven-staging.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Publish Package to the Maven Central Staging Repository
on:
workflow_dispatch:
inputs:
release_core:
required: false
type: boolean
default: false
description: Release Core

release_identity:
required: false
type: boolean
default: false
description: Release Identity

release_lifecycle:
required: false
type: boolean
default: false
description: Release Lifecycle

release_signal:
required: false
type: boolean
default: false
description: Release Signal

jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Java
uses: actions/setup-java@v1
with:
java-version: 11

- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle

- name: Import GPG key
env:
GPG_SECRET_KEYS: ${{ secrets.GPG_SECRET_KEYS }}
GPG_OWNERTRUST: ${{ secrets.GPG_OWNERTRUST }}
run: |
echo $GPG_SECRET_KEYS | base64 --decode | gpg --import --no-tty --batch --yes
echo $GPG_OWNERTRUST | base64 --decode | gpg --import-ownertrust --no-tty --batch --yes
- name: Publish Core to maven central staging repository
if: ${{ inputs.release_core }}
run: make core-publish-staging
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}

- name: Publish Identity to maven central staging repository
if: ${{ inputs.release_identity }}
run: make identity-publish-staging
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}

- name: Publish Lifecycle to maven central staging repository
if: ${{ inputs.release_lifecycle }}
run: make lifecycle-publish-staging
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}

- name: Publish Signal to maven central staging repository
if: ${{ inputs.release_signal }}
run: make signal-publish-staging
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}
Loading

0 comments on commit 13cad46

Please sign in to comment.