From 8ca01777c86f4cda871120424174ced841b502cc Mon Sep 17 00:00:00 2001 From: Carter Jernigan Date: Tue, 14 Jun 2022 08:30:12 -0400 Subject: [PATCH] [#65] Support included builds Namespacing the build-conventions will solve issues with included build name conflicts. Namespacing the lib will also prevent conflicts with included builds. --- .github/actions/setup/action.yml | 45 +++++++++---------- {lib => bip39-lib}/build.gradle.kts | 0 {lib => bip39-lib}/gradle.lockfile | 0 .../cash/z/ecc/android/bip39/Mnemonics.kt | 0 .../cash/z/ecc/android/bip39/WordList.kt | 0 .../z/ecc/android/crypto/FallbackProvider.kt | 0 .../cash/z/ecc/android/crypto/Pbkdf2Sha512.kt | 0 .../cash/z/ecc/android/bip39/MnemonicsTest.kt | 0 .../z/ecc/android/bip39/ReadmeExamplesTest.kt | 0 .../z/ecc/android/crypto/Pbkdf2Sha512Test.kt | 0 .../resources/data/BIP-0039-test-values.json | 0 .../build.gradle.kts | 0 .../buildscript-gradle.lockfile | 0 .../gradle.lockfile | 0 .../settings.gradle.kts | 0 .../bip39.dependency-conventions.gradle.kts | 0 ...otlin-multiplatform-conventions.gradle.kts | 0 .../bip39.ktlint-conventions.gradle.kts | 0 settings.gradle.kts | 4 +- 19 files changed, 23 insertions(+), 26 deletions(-) rename {lib => bip39-lib}/build.gradle.kts (100%) rename {lib => bip39-lib}/gradle.lockfile (100%) rename {lib => bip39-lib}/src/jvmMain/kotlin/cash/z/ecc/android/bip39/Mnemonics.kt (100%) rename {lib => bip39-lib}/src/jvmMain/kotlin/cash/z/ecc/android/bip39/WordList.kt (100%) rename {lib => bip39-lib}/src/jvmMain/kotlin/cash/z/ecc/android/crypto/FallbackProvider.kt (100%) rename {lib => bip39-lib}/src/jvmMain/kotlin/cash/z/ecc/android/crypto/Pbkdf2Sha512.kt (100%) rename {lib => bip39-lib}/src/jvmTest/kotlin/cash/z/ecc/android/bip39/MnemonicsTest.kt (100%) rename {lib => bip39-lib}/src/jvmTest/kotlin/cash/z/ecc/android/bip39/ReadmeExamplesTest.kt (100%) rename {lib => bip39-lib}/src/jvmTest/kotlin/cash/z/ecc/android/crypto/Pbkdf2Sha512Test.kt (100%) rename {lib => bip39-lib}/src/jvmTest/resources/data/BIP-0039-test-values.json (100%) rename {build-conventions => build-conventions-bip39}/build.gradle.kts (100%) rename {build-conventions => build-conventions-bip39}/buildscript-gradle.lockfile (100%) rename {build-conventions => build-conventions-bip39}/gradle.lockfile (100%) rename {build-conventions => build-conventions-bip39}/settings.gradle.kts (100%) rename {build-conventions => build-conventions-bip39}/src/main/kotlin/bip39.dependency-conventions.gradle.kts (100%) rename {build-conventions => build-conventions-bip39}/src/main/kotlin/bip39.kotlin-multiplatform-conventions.gradle.kts (100%) rename {build-conventions => build-conventions-bip39}/src/main/kotlin/bip39.ktlint-conventions.gradle.kts (100%) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index d701026..e2ee29d 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -20,42 +20,39 @@ runs: echo "org.gradle.daemon=false" >> ~/.gradle/gradle.properties - name: Gradle Wrapper Cache id: gradle-wrapper-cache - uses: actions/cache@30f413bfed0a2bc738fdfd409e5a9e96b24545fd + uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d with: path: ~/.gradle/wrapper key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles(format('{0}{1}', github.workspace, '/gradle/wrapper/gradle-wrapper.properties')) }} - name: Gradle Dependency Cache id: gradle-dependency-cache - uses: actions/cache@30f413bfed0a2bc738fdfd409e5a9e96b24545fd + uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d with: path: ~/.gradle/caches/modules-2 - key: ${{ runner.os }}-gradle-deps-${{ hashFiles(format('{0}{1}', github.workspace, '/gradle.properties')) }} + key: ${{ runner.os }}-gradle-deps-${{ hashFiles(format('{0}{1}', github.workspace, '/gradle.properties'), format('{0}{1}', github.workspace, '/gradle/libs.versions.toml')) }} restore-keys: | - ${{ runner.os }}-gradle-deps - # This tries to fall back to the build cache from the main branch, while ensuring that - # main branch builds repopulate the cache each time. - - name: Gradle Build Cache Main - id: gradle-build-cache-main - if: github.event.pull_request.head.sha == '' - uses: actions/cache@30f413bfed0a2bc738fdfd409e5a9e96b24545fd + ${{ runner.os }}-gradle-deps- + - name: Kotlin Dependency Cache + id: kotlin-dependency-cache + uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d + with: + path: | + ~/.konan + key: ${{ runner.os }}-kotlin-deps-${{ hashFiles(format('{0}{1}', github.workspace, '/gradle.properties')) }} +# The build cache is doing two things: +# 1. Relying on the most recent main branch build to provide a partial cache for both main branch and PR builds. +# 2. Relying on the sha for an exact match so that the prime_cache job is re-used by all dependent jobs in a single workflow run + - name: Gradle Build Cache + id: gradle-build-cache + uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d with: path: | ~/.gradle/caches/build-cache-1 ~/.gradle/caches/transforms-3 + .gradle/configuration-cache key: ${{ runner.os }}-gradle-build-${{ github.sha }} restore-keys: | - ${{ runner.os }}-gradle-build - - name: Gradle Build Cache Pull Request - id: gradle-build-cache-pr - if: github.event.pull_request.head.sha != '' - uses: actions/cache@30f413bfed0a2bc738fdfd409e5a9e96b24545fd - with: - path: | - ~/.gradle/caches/build-cache-1 - ~/.gradle/caches/transforms-3 - key: ${{ runner.os }}-gradle-build-${{ github.event.pull_request.base.sha }} - restore-keys: | - ${{ runner.os }}-gradle-build + ${{ runner.os }}-gradle-build- - name: Download Gradle if: steps.gradle-wrapper-cache.outputs.cache-hit != 'true' shell: bash @@ -65,9 +62,9 @@ runs: if: steps.gradle-dependency-cache.outputs.cache-hit != 'true' shell: bash run: | - ./gradlew dependencies :lib:dependencies + ./gradlew dependencies :bip39-lib:dependencies - name: Compile - if: steps.gradle-build-cache-main.outputs.cache-hit != 'true' && steps.gradle-build-cache-pr.outputs.cache-hit != 'true' + if: steps.gradle-build-cache.outputs.cache-hit != 'true' shell: bash run: | ./gradlew assemble testClasses diff --git a/lib/build.gradle.kts b/bip39-lib/build.gradle.kts similarity index 100% rename from lib/build.gradle.kts rename to bip39-lib/build.gradle.kts diff --git a/lib/gradle.lockfile b/bip39-lib/gradle.lockfile similarity index 100% rename from lib/gradle.lockfile rename to bip39-lib/gradle.lockfile diff --git a/lib/src/jvmMain/kotlin/cash/z/ecc/android/bip39/Mnemonics.kt b/bip39-lib/src/jvmMain/kotlin/cash/z/ecc/android/bip39/Mnemonics.kt similarity index 100% rename from lib/src/jvmMain/kotlin/cash/z/ecc/android/bip39/Mnemonics.kt rename to bip39-lib/src/jvmMain/kotlin/cash/z/ecc/android/bip39/Mnemonics.kt diff --git a/lib/src/jvmMain/kotlin/cash/z/ecc/android/bip39/WordList.kt b/bip39-lib/src/jvmMain/kotlin/cash/z/ecc/android/bip39/WordList.kt similarity index 100% rename from lib/src/jvmMain/kotlin/cash/z/ecc/android/bip39/WordList.kt rename to bip39-lib/src/jvmMain/kotlin/cash/z/ecc/android/bip39/WordList.kt diff --git a/lib/src/jvmMain/kotlin/cash/z/ecc/android/crypto/FallbackProvider.kt b/bip39-lib/src/jvmMain/kotlin/cash/z/ecc/android/crypto/FallbackProvider.kt similarity index 100% rename from lib/src/jvmMain/kotlin/cash/z/ecc/android/crypto/FallbackProvider.kt rename to bip39-lib/src/jvmMain/kotlin/cash/z/ecc/android/crypto/FallbackProvider.kt diff --git a/lib/src/jvmMain/kotlin/cash/z/ecc/android/crypto/Pbkdf2Sha512.kt b/bip39-lib/src/jvmMain/kotlin/cash/z/ecc/android/crypto/Pbkdf2Sha512.kt similarity index 100% rename from lib/src/jvmMain/kotlin/cash/z/ecc/android/crypto/Pbkdf2Sha512.kt rename to bip39-lib/src/jvmMain/kotlin/cash/z/ecc/android/crypto/Pbkdf2Sha512.kt diff --git a/lib/src/jvmTest/kotlin/cash/z/ecc/android/bip39/MnemonicsTest.kt b/bip39-lib/src/jvmTest/kotlin/cash/z/ecc/android/bip39/MnemonicsTest.kt similarity index 100% rename from lib/src/jvmTest/kotlin/cash/z/ecc/android/bip39/MnemonicsTest.kt rename to bip39-lib/src/jvmTest/kotlin/cash/z/ecc/android/bip39/MnemonicsTest.kt diff --git a/lib/src/jvmTest/kotlin/cash/z/ecc/android/bip39/ReadmeExamplesTest.kt b/bip39-lib/src/jvmTest/kotlin/cash/z/ecc/android/bip39/ReadmeExamplesTest.kt similarity index 100% rename from lib/src/jvmTest/kotlin/cash/z/ecc/android/bip39/ReadmeExamplesTest.kt rename to bip39-lib/src/jvmTest/kotlin/cash/z/ecc/android/bip39/ReadmeExamplesTest.kt diff --git a/lib/src/jvmTest/kotlin/cash/z/ecc/android/crypto/Pbkdf2Sha512Test.kt b/bip39-lib/src/jvmTest/kotlin/cash/z/ecc/android/crypto/Pbkdf2Sha512Test.kt similarity index 100% rename from lib/src/jvmTest/kotlin/cash/z/ecc/android/crypto/Pbkdf2Sha512Test.kt rename to bip39-lib/src/jvmTest/kotlin/cash/z/ecc/android/crypto/Pbkdf2Sha512Test.kt diff --git a/lib/src/jvmTest/resources/data/BIP-0039-test-values.json b/bip39-lib/src/jvmTest/resources/data/BIP-0039-test-values.json similarity index 100% rename from lib/src/jvmTest/resources/data/BIP-0039-test-values.json rename to bip39-lib/src/jvmTest/resources/data/BIP-0039-test-values.json diff --git a/build-conventions/build.gradle.kts b/build-conventions-bip39/build.gradle.kts similarity index 100% rename from build-conventions/build.gradle.kts rename to build-conventions-bip39/build.gradle.kts diff --git a/build-conventions/buildscript-gradle.lockfile b/build-conventions-bip39/buildscript-gradle.lockfile similarity index 100% rename from build-conventions/buildscript-gradle.lockfile rename to build-conventions-bip39/buildscript-gradle.lockfile diff --git a/build-conventions/gradle.lockfile b/build-conventions-bip39/gradle.lockfile similarity index 100% rename from build-conventions/gradle.lockfile rename to build-conventions-bip39/gradle.lockfile diff --git a/build-conventions/settings.gradle.kts b/build-conventions-bip39/settings.gradle.kts similarity index 100% rename from build-conventions/settings.gradle.kts rename to build-conventions-bip39/settings.gradle.kts diff --git a/build-conventions/src/main/kotlin/bip39.dependency-conventions.gradle.kts b/build-conventions-bip39/src/main/kotlin/bip39.dependency-conventions.gradle.kts similarity index 100% rename from build-conventions/src/main/kotlin/bip39.dependency-conventions.gradle.kts rename to build-conventions-bip39/src/main/kotlin/bip39.dependency-conventions.gradle.kts diff --git a/build-conventions/src/main/kotlin/bip39.kotlin-multiplatform-conventions.gradle.kts b/build-conventions-bip39/src/main/kotlin/bip39.kotlin-multiplatform-conventions.gradle.kts similarity index 100% rename from build-conventions/src/main/kotlin/bip39.kotlin-multiplatform-conventions.gradle.kts rename to build-conventions-bip39/src/main/kotlin/bip39.kotlin-multiplatform-conventions.gradle.kts diff --git a/build-conventions/src/main/kotlin/bip39.ktlint-conventions.gradle.kts b/build-conventions-bip39/src/main/kotlin/bip39.ktlint-conventions.gradle.kts similarity index 100% rename from build-conventions/src/main/kotlin/bip39.ktlint-conventions.gradle.kts rename to build-conventions-bip39/src/main/kotlin/bip39.ktlint-conventions.gradle.kts diff --git a/settings.gradle.kts b/settings.gradle.kts index cd23ef9..c3bcfdb 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -16,6 +16,6 @@ dependencyResolutionManagement { } rootProject.name = "kotlin-bip39" -include(":lib") +include(":bip39-lib") -includeBuild("build-conventions") +includeBuild("build-conventions-bip39")