1name: build 2 3on: [push, pull_request] 4 5env: 6 GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false" 7 8jobs: 9 jvm: 10 runs-on: ubuntu-latest 11 12 strategy: 13 fail-fast: false 14 matrix: 15 java-version: 16 - 1.8 17 - 9 18 - 10 19 - 11 20 - 12 21 - 13 22 - 14 23 - 15 24 25 steps: 26 - name: Checkout 27 uses: actions/checkout@v2 28 29 - name: Validate Gradle Wrapper 30 uses: gradle/wrapper-validation-action@v1 31 32 - name: Configure JDK 33 uses: actions/setup-java@v1 34 with: 35 java-version: ${{ matrix.java-version }} 36 37 - name: Test 38 run: | 39 ./gradlew -Dkjs=false -Dknative=false build 40 41 - name: Upload Japicmp report 42 if: failure() 43 uses: actions/upload-artifact@master 44 with: 45 name: japicmp-report 46 path: okio/jvm/japicmp/build/reports/japi.txt 47 48 multiplatform: 49 runs-on: macOS-latest 50 51 steps: 52 - name: Checkout 53 uses: actions/checkout@v2 54 55 - name: Validate Gradle Wrapper 56 uses: gradle/wrapper-validation-action@v1 57 58 - name: Configure JDK 59 uses: actions/setup-java@v1 60 with: 61 java-version: 14 62 63 - name: Test 64 run: | 65 ./gradlew build 66 67 windows: 68 runs-on: windows-latest 69 70 steps: 71 - name: Checkout 72 uses: actions/checkout@v2 73 74 - name: Validate Gradle Wrapper 75 uses: gradle/wrapper-validation-action@v1 76 77 - name: Configure JDK 78 uses: actions/setup-java@v1 79 with: 80 java-version: 1.8 81 82 - name: Test 83 run: | 84 ./gradlew build 85 86 publish: 87 runs-on: macOS-latest 88 if: github.ref == 'refs/heads/master' 89 needs: [jvm, multiplatform, windows] 90 91 steps: 92 - name: Checkout 93 uses: actions/checkout@v2 94 95 - name: Configure JDK 96 uses: actions/setup-java@v1 97 with: 98 java-version: 14 99 100 - name: Upload Artifacts 101 run: | 102 ./gradlew clean publish 103 env: 104 ORG_GRADLE_PROJECT_SONATYPE_NEXUS_USERNAME: ${{ secrets.SONATYPE_NEXUS_USERNAME }} 105 ORG_GRADLE_PROJECT_SONATYPE_NEXUS_PASSWORD: ${{ secrets.SONATYPE_NEXUS_PASSWORD }} 106 107 publish-windows: 108 runs-on: windows-latest 109 if: github.ref == 'refs/heads/master' 110 needs: [jvm, multiplatform, windows] 111 112 steps: 113 - name: Checkout 114 uses: actions/checkout@v2 115 116 - name: Configure JDK 117 uses: actions/setup-java@v1 118 with: 119 java-version: 1.8 120 121 - name: Upload Artifacts 122 run: | 123 ./gradlew clean publishMingwX64PublicationToMavenRepository 124 env: 125 ORG_GRADLE_PROJECT_SONATYPE_NEXUS_USERNAME: ${{ secrets.SONATYPE_NEXUS_USERNAME }} 126 ORG_GRADLE_PROJECT_SONATYPE_NEXUS_PASSWORD: ${{ secrets.SONATYPE_NEXUS_PASSWORD }} 127 128 publish-website: 129 runs-on: ubuntu-latest 130 if: github.ref == 'refs/heads/master' 131 needs: [jvm, multiplatform] 132 133 steps: 134 - name: Checkout 135 uses: actions/checkout@v2 136 137 - name: Configure JDK 138 uses: actions/setup-java@v1 139 with: 140 java-version: 14 141 142 - name: Set up Python 143 uses: actions/setup-python@v2 144 with: 145 python-version: 3.8 146 147 - name: Prepare docs 148 run: .buildscript/prepare_mkdocs.sh 149 150 - name: Build mkdocs 151 run: | 152 pip3 install mkdocs-macros-plugin 153 mkdocs build 154 155 - name: Deploy docs 156 if: success() 157 uses: JamesIves/github-pages-deploy-action@releases/v3 158 with: 159 GITHUB_TOKEN: ${{ secrets.GH_CLIPPY_TOKEN }} 160 BRANCH: gh-pages 161 FOLDER: site 162 SINGLE_COMMIT: true 163