• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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