163 lines
3.7 KiB
YAML
163 lines
3.7 KiB
YAML
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
|