diff options
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r-- | .github/workflows/build.yml | 151 |
1 files changed, 87 insertions, 64 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 26b26894..a4fba896 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,9 +1,16 @@ name: build -on: [push, pull_request] +on: + pull_request: {} + workflow_dispatch: {} + push: + branches: + - 'master' + tags-ignore: + - '**' env: - GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false" + GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx2g -Dorg.gradle.daemon=false -Dkotlin.incremental=false" jobs: jvm: @@ -13,134 +20,147 @@ jobs: fail-fast: false matrix: java-version: - - 1.8 - - 9 - - 10 + - 8 - 11 - - 12 - - 13 - - 14 - - 15 + - 17 + - 19 steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v1 - name: Configure JDK - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: - java-version: ${{ matrix.java-version }} + distribution: 'zulu' + java-version: 19 - name: Test run: | - ./gradlew -Dkjs=false -Dknative=false build + ./gradlew -Dkjs=false -Dknative=false -Dkwasm=false -Dtest.java.version=${{ matrix.java-version }} build --stacktrace - - name: Upload Japicmp report - if: failure() - uses: actions/upload-artifact@master + emulator: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4.0.0 with: - name: japicmp-report - path: okio/jvm/japicmp/build/reports/japi.txt + distribution: 'zulu' + java-version: 19 + + - uses: gradle/gradle-build-action@v2 + + - uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 24 + script: ./gradlew :okio-assetfilesystem:connectedCheck + + loom: + runs-on: ubuntu-latest - multiplatform: - runs-on: macOS-latest + strategy: + fail-fast: false steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v1 - name: Configure JDK - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: - java-version: 14 + distribution: 'zulu' + java-version: 19 - name: Test run: | - ./gradlew build + ./gradlew -DloomEnabled=true build + + all-platforms: + runs-on: ${{ matrix.os }} - windows: - runs-on: windows-latest + strategy: + fail-fast: false + matrix: + os: [ macos-11, ubuntu-latest, windows-latest ] steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v1 - name: Configure JDK - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: - java-version: 1.8 + distribution: 'zulu' + java-version: 19 - name: Test + if: matrix.os != 'windows-latest' run: | ./gradlew build - publish: - runs-on: macOS-latest - if: github.ref == 'refs/heads/master' - needs: [jvm, multiplatform, windows] - - steps: - - name: Checkout - uses: actions/checkout@v2 + - name: Test (No WASM) + if: matrix.os == 'windows-latest' + run: | + ./gradlew build -Dkwasm=false - - name: Configure JDK - uses: actions/setup-java@v1 + - name: Save Test Reports + if: failure() + uses: actions/upload-artifact@v4 with: - java-version: 14 + name: test-reports + path: '**/build/reports' - - name: Upload Artifacts - run: | - ./gradlew clean publish - env: - ORG_GRADLE_PROJECT_SONATYPE_NEXUS_USERNAME: ${{ secrets.SONATYPE_NEXUS_USERNAME }} - ORG_GRADLE_PROJECT_SONATYPE_NEXUS_PASSWORD: ${{ secrets.SONATYPE_NEXUS_PASSWORD }} - - publish-windows: - runs-on: windows-latest - if: github.ref == 'refs/heads/master' - needs: [jvm, multiplatform, windows] + publish: + runs-on: macos-13 + if: github.repository == 'square/okio' && github.ref == 'refs/heads/master' + needs: [jvm, all-platforms, emulator] steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Configure JDK - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: - java-version: 1.8 + distribution: 'zulu' + java-version: 19 - name: Upload Artifacts run: | - ./gradlew clean publishMingwX64PublicationToMavenRepository + ./gradlew clean publish --stacktrace env: - ORG_GRADLE_PROJECT_SONATYPE_NEXUS_USERNAME: ${{ secrets.SONATYPE_NEXUS_USERNAME }} - ORG_GRADLE_PROJECT_SONATYPE_NEXUS_PASSWORD: ${{ secrets.SONATYPE_NEXUS_PASSWORD }} + ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_NEXUS_USERNAME }} + ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_NEXUS_PASSWORD }} + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.ARTIFACT_SIGNING_PRIVATE_KEY }} publish-website: runs-on: ubuntu-latest - if: github.ref == 'refs/heads/master' - needs: [jvm, multiplatform] + if: github.repository == 'square/okio' && github.ref == 'refs/heads/master' + needs: [jvm, all-platforms, emulator] steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Configure JDK - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: - java-version: 14 + distribution: 'zulu' + java-version: 19 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: 3.8 @@ -149,9 +169,12 @@ jobs: - name: Build mkdocs run: | - pip3 install mkdocs-macros-plugin + pip3 install mkdocs-material mkdocs-macros-plugin mkdocs build + - name: Restore 1.x docs + run: .buildscript/restore_v1_docs.sh + - name: Deploy docs if: success() uses: JamesIves/github-pages-deploy-action@releases/v3 |