Skip to content

Commit

Permalink
Merge pull request #1 from cashapp/jwilson.1008.burst
Browse files Browse the repository at this point in the history
Core is working
  • Loading branch information
squarejesse authored Oct 9, 2024
2 parents 1a8c72d + 8d953c8 commit d57c154
Show file tree
Hide file tree
Showing 42 changed files with 3,128 additions and 0 deletions.
11 changes: 11 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
root = true

[*]
indent_size = 2
ij_continuation_indent_size = 2
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.{kt, kts}]
ij_kotlin_imports_layout = *
160 changes: 160 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
name: build

on:
pull_request: {}
workflow_dispatch: {}
push:
branches:
- 'trunk'
tags-ignore:
- '**'

env:
GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false"

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

- run: ./gradlew assemble :dokkaHtmlMultiModule

- 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' }}
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
15 changes: 15 additions & 0 deletions .github/workflows/gradle-wrapper.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: gradle-wrapper

on:
pull_request:
paths:
- 'gradlew'
- 'gradlew.bat'
- 'gradle/wrapper/**'

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: gradle/actions/wrapper-validation@v4
88 changes: 88 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: release

on:
push:
tags:
- '**'

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

- run: ./gradlew publishToMavenCentral :dokkaHtmlMultiModule
if: ${{ github.repository == 'cashapp/zipline' }}
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 }}

- uses: ffurrer2/extract-release-notes@v2
id: release_notes

- uses: softprops/action-gh-release@v2
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
32 changes: 32 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# IntelliJ IDEA
.idea
!/.idea/copyright
*.iml

# Gradle
.gradle
build/
local.properties
reports
jacoco.exec
.externalNativeBuild
.cxx
.kotlin

# iOS
*.pbxuser
# Ignore generated Xcode projects
*.xcworkspace
xcuserdata
Pods

# Release
docs/0.x

# Testing
burst-gradle-plugin/src/test/projects/**/gradle/wrapper

# Yarn
samples/**/yarn.lock
burst-gradle-plugin/src/test/projects/**/yarn.lock

9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Change Log

## Unreleased


## Version 0.0.0 *(2024-09-08)*

Initial release.

Loading

0 comments on commit d57c154

Please sign in to comment.