aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml162
1 files changed, 162 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 00000000..26b26894
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,162 @@
+name: build
+
+on: [push, pull_request]
+
+env:
+ GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false"
+
+jobs:
+ jvm:
+ runs-on: ubuntu-latest
+
+ strategy:
+ fail-fast: false
+ matrix:
+ java-version:
+ - 1.8
+ - 9
+ - 10
+ - 11
+ - 12
+ - 13
+ - 14
+ - 15
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+
+ - name: Validate Gradle Wrapper
+ uses: gradle/wrapper-validation-action@v1
+
+ - name: Configure JDK
+ uses: actions/setup-java@v1
+ with:
+ java-version: ${{ matrix.java-version }}
+
+ - name: Test
+ run: |
+ ./gradlew -Dkjs=false -Dknative=false build
+
+ - name: Upload Japicmp report
+ if: failure()
+ uses: actions/upload-artifact@master
+ with:
+ name: japicmp-report
+ path: okio/jvm/japicmp/build/reports/japi.txt
+
+ multiplatform:
+ runs-on: macOS-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+
+ - name: Validate Gradle Wrapper
+ uses: gradle/wrapper-validation-action@v1
+
+ - name: Configure JDK
+ uses: actions/setup-java@v1
+ with:
+ java-version: 14
+
+ - name: Test
+ run: |
+ ./gradlew build
+
+ windows:
+ runs-on: windows-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+
+ - name: Validate Gradle Wrapper
+ uses: gradle/wrapper-validation-action@v1
+
+ - name: Configure JDK
+ uses: actions/setup-java@v1
+ with:
+ java-version: 1.8
+
+ - name: Test
+ 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: Configure JDK
+ uses: actions/setup-java@v1
+ with:
+ java-version: 14
+
+ - 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]
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+
+ - name: Configure JDK
+ uses: actions/setup-java@v1
+ with:
+ java-version: 1.8
+
+ - name: Upload Artifacts
+ run: |
+ ./gradlew clean publishMingwX64PublicationToMavenRepository
+ env:
+ ORG_GRADLE_PROJECT_SONATYPE_NEXUS_USERNAME: ${{ secrets.SONATYPE_NEXUS_USERNAME }}
+ ORG_GRADLE_PROJECT_SONATYPE_NEXUS_PASSWORD: ${{ secrets.SONATYPE_NEXUS_PASSWORD }}
+
+ publish-website:
+ runs-on: ubuntu-latest
+ if: github.ref == 'refs/heads/master'
+ needs: [jvm, multiplatform]
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+
+ - name: Configure JDK
+ uses: actions/setup-java@v1
+ with:
+ java-version: 14
+
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.8
+
+ - name: Prepare docs
+ run: .buildscript/prepare_mkdocs.sh
+
+ - name: Build mkdocs
+ run: |
+ pip3 install mkdocs-macros-plugin
+ mkdocs build
+
+ - name: Deploy docs
+ if: success()
+ uses: JamesIves/github-pages-deploy-action@releases/v3
+ with:
+ GITHUB_TOKEN: ${{ secrets.GH_CLIPPY_TOKEN }}
+ BRANCH: gh-pages
+ FOLDER: site
+ SINGLE_COMMIT: true