diff --git a/.github/workflows/.ci_test_and_publish.yml b/.github/workflows/.ci_test_and_publish.yml new file mode 100644 index 0000000..ae084da --- /dev/null +++ b/.github/workflows/.ci_test_and_publish.yml @@ -0,0 +1,65 @@ +# This workflow will build the project with Gradle, run integration tests, and release. +# Because secrets are not available on external forks, this job is expected to fail +# on external pull requests. + +name: Build project & run tests + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + publish: + runs-on: ubuntu-latest + if: github.repository == 'dropbox/Store' && github.ref == 'refs/heads/main' + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up our JDK environment + uses: actions/setup-java@v1.4.3 + with: + java-version: 1.8 + + - name: Upload Artifacts + run: tools/release/deploy_snapshot.sh + env: + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} + ENCRYPT_KEY: ${{ secrets.ENCRYPT_KEY }} + SIGNING_ID: ${{ secrets.SIGNING_ID }} + SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} + + - name: Clean up Artifacts + if: always() + run: tools/release/deploy_cleanup.sh + test: + runs-on: ubuntu-latest + timeout-minutes: 30 + + strategy: + fail-fast: false + matrix: + api-level: + - 29 + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up our JDK environment + uses: actions/setup-java@v1.4.3 + with: + java-version: 1.8 + - name: Run tests + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 29 + script: ./gradlew clean cleanBuildCache check --stacktrace + env: + API_LEVEL: ${{ matrix.api-level }} + - name: Upload code coverage + run: bash <(curl -s https://codecov.io/bash) diff --git a/tools/release/deploy_snapshot.sh b/tools/release/deploy_snapshot.sh index 28a6559..4fad3aa 100755 --- a/tools/release/deploy_snapshot.sh +++ b/tools/release/deploy_snapshot.sh @@ -5,24 +5,16 @@ # Adapted from https://coderwall.com/p/9b_lfq and # http://benlimmer.com/2013/12/26/automatically-publish-javadoc-to-gh-pages-with-travis-ci/ -SLUG="dropbox/Store" -JDK="oraclejdk8" BRANCH="main" set -e -if [ "$TRAVIS_REPO_SLUG" != "$SLUG" ]; then - echo "Skipping snapshot deployment: wrong repository. Expected '$SLUG' but was '$TRAVIS_REPO_SLUG'." -elif [ "$TRAVIS_JDK_VERSION" != "$JDK" ]; then - echo "Skipping snapshot deployment: wrong JDK. Expected '$JDK' but was '$TRAVIS_JDK_VERSION'." -elif [ "$TRAVIS_PULL_REQUEST" != "false" ]; then - echo "Skipping snapshot deployment: was pull request." -elif [ "$TRAVIS_BRANCH" != "$BRANCH" ]; then - echo "Skipping snapshot deployment: wrong branch. Expected '$BRANCH' but was '$TRAVIS_BRANCH'." +if [ "${GITHUB_REF##*/}" != "$BRANCH" ]; then + echo "Skipping snapshot deployment: wrong branch. Expected '$BRANCH' but was '${GITHUB_REF##*/}'." else echo "Deploying store..." openssl aes-256-cbc -md sha256 -d -in tools/release/secring.gpg.aes -out tools/release/secring.gpg -k "${ENCRYPT_KEY}" # https://docs.gradle.org/current/userguide/signing_plugin.html#sec:signatory_credentials ./gradlew uploadArchives -PSONATYPE_USERNAME="${SONATYPE_USERNAME}" -PSONATYPE_PASSWORD="${SONATYPE_PASSWORD}" -Psigning.keyId="${SIGNING_ID}" -Psigning.password="${SIGNING_PASSWORD}" -Psigning.secretKeyRingFile=${PWD}/tools/release/secring.gpg echo "Store deployed!" -fi +fi \ No newline at end of file diff --git a/tools/release/secring.gpg.aes b/tools/release/secring.gpg.aes index fb721e8..63138e8 100644 Binary files a/tools/release/secring.gpg.aes and b/tools/release/secring.gpg.aes differ