Skip to content

Merge pull request #3151 from square/cycle_bug #6880

Merge pull request #3151 from square/cycle_bug

Merge pull request #3151 from square/cycle_bug #6880

Workflow file for this run

name: build
on:
pull_request: {}
workflow_dispatch: {}
push:
branches:
- 'master'
tags-ignore:
- '**'
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:
- 17
- 18
- 19
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Configure JDK
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: ${{ matrix.java-version }}
- name: Check test files
run: |
./gradlew generateTests -Pswift=false --stacktrace --warning-mode all
if [ ! -z "$(git status --porcelain)" ]; then git diff; echo -e "\nTest files changed. Did you run ./gradlew generateTests?"; exit 1; fi
- name: Test Native and JS
run: |
./gradlew -Dkjs=true -Dknative=true -Pswift=false samples:native:build samples:js:build samples:multi-target:build --stacktrace --warning-mode all
- name: Test
run: |
./gradlew -Dkjs=false -Dknative=false -Pswift=false build --stacktrace --warning-mode all -x samples:native:build -x samples:js:build -x samples:multi-target:build
multiplatform:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Configure JDK
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 19
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: 15.4.0
# We set `SDKROOT` as a workaround for https://github.com/gradle/gradle/pull/29227
- name: Check test files
run: |
SDKROOT=$(xcrun -sdk macosx --show-sdk-path) ./gradlew generateTests --stacktrace --warning-mode all
if [ ! -z "$(git status --porcelain)" ]; then git diff; echo -e "\nTest files changed. Did you run ./gradlew generateTests?"; exit 1; fi
- name: Install Chrome
uses: browser-actions/setup-chrome@latest
- name: Test
run: |
./gradlew -Pswift=false build --stacktrace --warning-mode all
windows:
runs-on: windows-latest
steps:
- name: Set git to use LF and not automatically replace them with CRLF.
run: |
git config --global core.autocrlf false
- name: Checkout
uses: actions/checkout@v4
- name: Configure JDK
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 19
- name: Check test files
run: |
./gradlew generateTests --stacktrace --warning-mode all
if [ ! -z "$(git status --porcelain)" ]; then git diff; echo -e "\nTest files changed. Did you run ./gradlew generateTests?"; exit 1; fi
shell: bash
- name: Install Chrome
uses: browser-actions/setup-chrome@latest
- name: Test
uses: nick-fields/[email protected]
with:
max_attempts: 5
timeout_minutes: 90
shell: bash
command: |
./gradlew -Pswift=false build --stacktrace --warning-mode all
swift:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Configure JDK
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 19
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: 15.4.0
# We set `SDKROOT` as a workaround for https://github.com/gradle/gradle/pull/29227
- name: Test Swift Runtime
# This builds the wire-swift-runtime, verifies that generated protos match what's currently
# checked into the repo both for the runtime itself and for its tests, and runs the tests.
run: |
SDKROOT=$(xcrun -sdk macosx --show-sdk-path) ./gradlew :wire-runtime-swift:build --warning-mode all
if [ ! -z "$(git status --porcelain)" ]; then git diff; echo -e "\nGenerated files changed. Did you run ./gradlew generateSwiftProtos?"; exit 1; fi
- name: Generate Swift from golden proto files
# This compiles the golden proto files into Swift files and ensures that those outputs match
# what's currently checked into the repo. These generated files are compiled during the
# wire-tests-swift build but should still be reviewed manually. Finally, run the associated
# unit tests.
run: |
SDKROOT=$(xcrun -sdk macosx --show-sdk-path) ./gradlew generateSwiftTests --warning-mode all
if [ ! -z "$(git status --porcelain)" ]; then git diff; echo -e "\nGenerated files changed. Did you run ./gradlew generateSwiftProtos and generateSwiftTests?"; exit 1; fi
SDKROOT=$(xcrun -sdk macosx --show-sdk-path) ./gradlew -p wire-tests-swift build --warning-mode all
- name: Test Swift Package Manager
run: swift test
android:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
api-level:
- 21
- 24
- 26
- 29
steps:
- name: Enable KVM group perms
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
ls /dev/kvm
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 19
- uses: gradle/actions/setup-gradle@v4
- name: Run Tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
script: ./gradlew --stacktrace -Pswift=false connectedCheck
env:
API_LEVEL: ${{ matrix.api-level }}
publish-snapshot:
runs-on: macos-latest
if: github.repository == 'square/wire' && github.ref == 'refs/heads/master'
needs: [jvm, multiplatform, swift]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Configure JDK
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 19
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: 15.4.0
# We set `SDKROOT` as a workaround for https://github.com/gradle/gradle/pull/29227
- name: Upload Artifacts
run: |
SDKROOT=$(xcrun -sdk macosx --show-sdk-path) ./gradlew publish --stacktrace --warning-mode all --no-daemon
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_NEXUS_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_NEXUS_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.ARTIFACT_SIGNING_PRIVATE_KEY }}