diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a4577c9..2961dd3 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -5,7 +5,7 @@ on: workflow_dispatch: {} push: branches: - - 'trunk' + - 'main' tags-ignore: - '**' @@ -14,147 +14,19 @@ env: jobs: build: - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest] - arch: [amd64] - cmake-arch: [x86_64] - include: - - os: macos-latest-large - arch: x86_64 - cmake-arch: x86_64 - - os: macos-latest - arch: aarch64 - cmake-arch: arm64 - # TODO: build on 'windows-latest' - - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: 20 - - - name: Zipline tests - run: ./gradlew :zipline:check --stacktrace - - - name: Build all Zipline - if: matrix.os == 'macos-latest' - run: ./gradlew build --stacktrace - - - name: Build samples - if: matrix.os == 'macos-latest' - run: ./gradlew -p samples check --stacktrace - - - uses: actions/upload-artifact@v4 - with: - name: jvm-native-libraries-${{ matrix.os }}-${{ matrix.arch }} - path: zipline/src/jvmMain/resources/* - if-no-files-found: error - - - uses: actions/upload-artifact@v4 - if: ${{ always() }} - with: - name: test-report-${{ matrix.os }}-${{ matrix.arch }} - path: '**/build/reports/tests/**' - retention-days: 1 - - android: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: 20 - - - name: Enable KVM - 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 - - - run: ./gradlew assembleAndroidTest - - - uses: reactivecircus/android-emulator-runner@v2 - with: - api-level: 29 - emulator-boot-timeout: 20000 - script: ./gradlew connectedCheck - - ios: - runs-on: macos-latest - - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: 20 - - - name: Build Xcode samples - run: | - cd samples/world-clock/ios/app - pod install - xcodebuild -workspace WorldClock.xcworkspace -scheme WorldClock -destination 'platform=iOS Simulator,name=iPhone 13,OS=latest' - - publish: runs-on: macos-latest - needs: - - build - - android - - ios steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: distribution: 'zulu' - java-version: 20 - - - uses: actions/download-artifact@v4 - with: - pattern: jvm-native-libraries-* - path: zipline/src/jvmMain/resources - merge-multiple: true + java-version: 21 - - run: ./gradlew assemble :dokkaHtmlMultiModule + - run: ./gradlew build - - uses: actions/upload-artifact@v4 - with: - name: zipline-jvm.jar - path: zipline/build/libs/zipline-jvm-*.jar - if-no-files-found: error - - - uses: actions/upload-artifact@v4 - with: - name: zipline-android.aar - path: zipline/build/outputs/aar/*-release.aar - if-no-files-found: error - - - uses: actions/upload-artifact@v4 - with: - name: zipline-cli.zip - path: zipline-cli/build/distributions/zipline-cli-*.zip - if-no-files-found: error - - - run: ./gradlew publishToMavenCentral - if: ${{ github.ref == 'refs/heads/trunk' && github.repository == 'cashapp/zipline' }} + - run: ./gradlew publish + if: ${{ github.ref == 'refs/heads/main' && github.repository == 'cashapp/burst' }} 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 }} - - - name: Deploy docs to website - if: ${{ github.ref == 'refs/heads/trunk' && github.repository == 'cashapp/zipline' }} - uses: JamesIves/github-pages-deploy-action@releases/v3 - with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - BRANCH: site - FOLDER: build/dokka/htmlMultiModule/ - TARGET_FOLDER: docs/latest/ - CLEAN: true diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 5bc0a53..a3eb676 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -7,60 +7,19 @@ on: env: GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false" - ANDROID_EMULATOR_WAIT_TIME_BEFORE_KILL: 60 jobs: - native-library: - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest] - arch: [amd64] - cmake-arch: [x86_64] - include: - - os: macos-latest-large - arch: x86_64 - cmake-arch: x86_64 - - os: macos-latest - arch: aarch64 - cmake-arch: arm64 - # TODO: build on 'windows-latest' - - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: 20 - - - uses: actions/upload-artifact@v4 - with: - name: jvm-native-libraries-${{ matrix.os }}-${{ matrix.arch }} - path: zipline/src/jvmMain/resources/* - if-no-files-found: error - publish: runs-on: macos-latest - needs: - - native-library steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: distribution: 'zulu' - java-version: 20 - - - uses: actions/download-artifact@v4 - with: - pattern: jvm-native-libraries-* - path: zipline/src/jvmMain/resources - merge-multiple: true + java-version: 21 - - run: ./gradlew publishToMavenCentral :dokkaHtmlMultiModule - if: ${{ github.repository == 'cashapp/zipline' }} + - run: ./gradlew publish env: ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_NEXUS_USERNAME }} ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_NEXUS_PASSWORD }} @@ -69,20 +28,6 @@ jobs: - uses: ffurrer2/extract-release-notes@v2 id: release_notes - - uses: softprops/action-gh-release@v2 + - uses: ncipollo/release-action@v1 with: body: ${{ steps.release_notes.outputs.release_notes }} - files: | - zipline-cli/build/distributions/zipline-cli-*.zip - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Deploy docs to website - if: ${{ github.repository == 'cashapp/zipline' }} - uses: JamesIves/github-pages-deploy-action@releases/v3 - with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - BRANCH: site - FOLDER: build/dokka/htmlMultiModule/ - TARGET_FOLDER: docs/1.x/ - CLEAN: true