diff options
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r-- | .github/workflows/build.yml | 162 |
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 |