Add TUI, Bridge Types, matchers, and Avro/gRPC integration #869
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: | |
| push: | |
| tags: [ 'v*' ] | |
| branches: [ 'main' ] | |
| pull_request: | |
| branches: [ 'main' ] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| scalafmt: | |
| timeout-minutes: 10 | |
| runs-on: ubuntu-latest | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: bleep-build/bleep-setup-action@0.0.1 | |
| - uses: coursier/cache-action@v6 | |
| with: | |
| extraFiles: bleep.yaml | |
| - name: Scalafmt Check | |
| run: bleep fmt --check | |
| tests: | |
| timeout-minutes: 10 | |
| runs-on: ubuntu-latest | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| env: | |
| PG_MAJOR: 16 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: bleep-build/bleep-setup-action@0.0.1 | |
| - uses: coursier/cache-action@v6 | |
| with: | |
| extraFiles: bleep.yaml | |
| - name: Start Postgres | |
| run: docker compose up -d postgres | |
| - name: Wait for Postgres | |
| run: | | |
| for i in {1..30}; do | |
| if docker compose exec -T postgres pg_isready -U postgres; then | |
| echo "Postgres is ready" | |
| break | |
| fi | |
| echo "Waiting for Postgres... ($i/30)" | |
| sleep 2 | |
| done | |
| - name: Run general tests | |
| run: bleep test tests | |
| build-postgres: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 25 | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| postgres-version: [12, 16] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: bleep-build/bleep-setup-action@0.0.1 | |
| - uses: coursier/cache-action@v6 | |
| with: | |
| extraFiles: bleep.yaml | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '21' | |
| distribution: 'temurin' | |
| - name: Start Postgres | |
| env: | |
| PG_MAJOR: ${{ matrix.postgres-version }} | |
| run: docker compose up -d postgres | |
| - name: Wait for Postgres | |
| run: | | |
| for i in {1..30}; do | |
| if docker compose exec -T postgres pg_isready -U postgres; then | |
| echo "Postgres is ready" | |
| break | |
| fi | |
| echo "Waiting for Postgres... ($i/30)" | |
| sleep 2 | |
| done | |
| - name: Compile typr | |
| run: bleep compile typr | |
| - name: Run Scala 2.13 Postgres tests | |
| env: | |
| CI: true | |
| run: | | |
| bleep test testers/pg/scala/anorm@jvm213 | |
| bleep test testers/pg/scala/doobie@jvm213 | |
| bleep test testers/pg/scala/zio-jdbc@jvm213 | |
| - name: Run Scala 3 Postgres tests | |
| env: | |
| CI: true | |
| run: | | |
| bleep test testers/pg/scala/anorm@jvm3 | |
| bleep test testers/pg/scala/doobie@jvm3 | |
| bleep test testers/pg/scala/zio-jdbc@jvm3 | |
| bleep test testers/pg/scala/scalatypes | |
| bleep test testers/pg/scala/javatypes | |
| - name: Run Java Postgres tests | |
| env: | |
| CI: true | |
| run: bleep test testers/pg/java | |
| - name: Run foundations-jdbc Postgres tests | |
| env: | |
| CI: true | |
| run: bleep compile foundations-jdbc-test && bleep test foundations-jdbc-test --only PgTypeTest | |
| - name: Sourcegen | |
| run: bleep sourcegen | |
| - name: Run Kotlin Postgres tests | |
| env: | |
| CI: true | |
| run: ./gradlew :testers:pg:kotlin:test | |
| build-mariadb: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: bleep-build/bleep-setup-action@0.0.1 | |
| - uses: coursier/cache-action@v6 | |
| with: | |
| extraFiles: bleep.yaml | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '21' | |
| distribution: 'temurin' | |
| - name: Start MariaDB | |
| run: docker compose up -d mariadb | |
| - name: Wait for MariaDB | |
| run: | | |
| for i in {1..30}; do | |
| if docker compose exec -T mariadb mariadb -u typr -ppassword -e "SELECT 1" typr 2>/dev/null; then | |
| echo "MariaDB is ready" | |
| break | |
| fi | |
| echo "Waiting for MariaDB... ($i/30)" | |
| sleep 2 | |
| done | |
| - name: Run MariaDB Scala tests | |
| env: | |
| CI: true | |
| run: bleep test testers/mariadb/scala | |
| - name: Run MariaDB Java tests | |
| env: | |
| CI: true | |
| run: bleep test testers/mariadb/java | |
| - name: Run foundations-jdbc MariaDB tests | |
| env: | |
| CI: true | |
| run: bleep compile foundations-jdbc-test && bleep test foundations-jdbc-test --only MariaTypeTest | |
| - name: Sourcegen | |
| run: bleep sourcegen | |
| - name: Run MariaDB Kotlin tests | |
| env: | |
| CI: true | |
| run: ./gradlew :testers:mariadb:kotlin:test | |
| build-oracle: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: bleep-build/bleep-setup-action@0.0.1 | |
| - uses: coursier/cache-action@v6 | |
| with: | |
| extraFiles: bleep.yaml | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '21' | |
| distribution: 'temurin' | |
| - name: Start Oracle and wait for healthy | |
| run: | | |
| docker compose up -d oracle | |
| echo "Waiting for Oracle to be healthy (this may take several minutes)..." | |
| docker compose up -d --wait oracle | |
| - name: Run Oracle Scala tests | |
| env: | |
| CI: true | |
| run: | | |
| bleep test testers/oracle/scala | |
| bleep test testers/oracle/scala-new | |
| - name: Run Oracle Java tests | |
| env: | |
| CI: true | |
| run: bleep test testers/oracle/java | |
| - name: Run foundations-jdbc Oracle tests | |
| env: | |
| CI: true | |
| run: bleep compile foundations-jdbc-test && bleep test foundations-jdbc-test --only OracleTypeTest | |
| - name: Sourcegen | |
| run: bleep sourcegen | |
| - name: Run Oracle Kotlin tests | |
| env: | |
| CI: true | |
| run: ./gradlew :testers:oracle:kotlin:test | |
| build-duckdb: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: bleep-build/bleep-setup-action@0.0.1 | |
| - uses: coursier/cache-action@v6 | |
| with: | |
| extraFiles: bleep.yaml | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '21' | |
| distribution: 'temurin' | |
| - name: Run DuckDB Scala tests | |
| env: | |
| CI: true | |
| run: bleep test testers/duckdb/scala | |
| - name: Run DuckDB Java tests | |
| env: | |
| CI: true | |
| run: bleep test testers/duckdb/java | |
| - name: Run foundations-jdbc DuckDB tests | |
| env: | |
| CI: true | |
| run: bleep compile foundations-jdbc-test && bleep test foundations-jdbc-test --only DuckDbTypeTest | |
| - name: Sourcegen | |
| run: bleep sourcegen | |
| - name: Run DuckDB Kotlin tests | |
| env: | |
| CI: true | |
| run: ./gradlew :testers:duckdb:kotlin:test | |
| build-sqlserver: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 25 | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: bleep-build/bleep-setup-action@0.0.1 | |
| - uses: coursier/cache-action@v6 | |
| with: | |
| extraFiles: bleep.yaml | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '21' | |
| distribution: 'temurin' | |
| - name: Start SQL Server and wait for healthy | |
| run: | | |
| docker compose up -d sqlserver | |
| echo "Waiting for SQL Server to be healthy..." | |
| docker compose up -d --wait sqlserver | |
| - name: Create typr database | |
| run: | | |
| docker exec $(docker compose ps -q sqlserver) /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P 'YourStrong@Passw0rd' -C -Q "CREATE DATABASE typr" | |
| - name: Run SQL Server Scala tests | |
| env: | |
| CI: true | |
| run: bleep test testers/sqlserver/scala | |
| - name: Run SQL Server Java tests | |
| env: | |
| CI: true | |
| run: bleep test testers/sqlserver/java | |
| - name: Run foundations-jdbc SQL Server tests | |
| env: | |
| CI: true | |
| run: bleep compile foundations-jdbc-test && bleep test foundations-jdbc-test --only SqlServerTypeTest | |
| - name: Sourcegen | |
| run: bleep sourcegen | |
| - name: Run SQL Server Kotlin tests | |
| env: | |
| CI: true | |
| run: ./gradlew :testers:sqlserver:kotlin:test | |
| build-db2: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 35 | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: bleep-build/bleep-setup-action@0.0.1 | |
| - uses: coursier/cache-action@v6 | |
| with: | |
| extraFiles: bleep.yaml | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '21' | |
| distribution: 'temurin' | |
| - name: Start DB2 and wait for healthy | |
| run: | | |
| docker compose up -d db2 | |
| echo "Waiting for DB2 to be healthy (this may take several minutes)..." | |
| # Stream logs in background while waiting | |
| docker compose logs -f db2 & | |
| LOGS_PID=$! | |
| docker compose up -d --wait db2 | |
| kill $LOGS_PID 2>/dev/null || true | |
| - name: Run DB2 Scala tests | |
| env: | |
| CI: true | |
| run: bleep test testers/db2/scala | |
| - name: Run DB2 Java tests | |
| env: | |
| CI: true | |
| run: bleep test testers/db2/java | |
| - name: Run foundations-jdbc DB2 tests | |
| env: | |
| CI: true | |
| run: bleep compile foundations-jdbc-test && bleep test foundations-jdbc-test --only Db2TypeTest | |
| - name: Sourcegen | |
| run: bleep sourcegen | |
| - name: Run DB2 Kotlin tests | |
| env: | |
| CI: true | |
| run: ./gradlew :testers:db2:kotlin:test | |
| build-openapi: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: bleep-build/bleep-setup-action@0.0.1 | |
| - uses: coursier/cache-action@v6 | |
| with: | |
| extraFiles: bleep.yaml | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '21' | |
| distribution: 'temurin' | |
| - name: Compile Scala OpenAPI testers | |
| run: | | |
| bleep compile testers/openapi/scala/http4s | |
| bleep compile testers/openapi/scala/spring | |
| - name: Compile Java OpenAPI testers | |
| run: | | |
| bleep compile testers/openapi/java/jaxrs | |
| bleep compile testers/openapi/java/quarkus | |
| bleep compile testers/openapi/java/spring | |
| - name: Sourcegen | |
| run: bleep sourcegen | |
| - name: Compile Kotlin OpenAPI testers (via gradle) | |
| run: | | |
| ./gradlew :testers:openapi:kotlin:jaxrs:compileKotlin | |
| ./gradlew :testers:openapi:kotlin:spring:compileKotlin | |
| ./gradlew :testers:openapi:kotlin:quarkus:compileKotlin | |
| build-docs: | |
| timeout-minutes: 20 | |
| runs-on: ubuntu-latest | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| env: | |
| PG_MAJOR: 16 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: bleep-build/bleep-setup-action@0.0.1 | |
| - uses: coursier/cache-action@v6 | |
| with: | |
| extraFiles: bleep.yaml | |
| - name: Start up Postgres | |
| run: docker compose up -d postgres | |
| - name: Wait for Postgres | |
| run: | | |
| for i in {1..30}; do | |
| if docker compose exec -T postgres pg_isready -U postgres; then | |
| echo "Postgres is ready" | |
| break | |
| fi | |
| echo "Waiting for Postgres... ($i/30)" | |
| sleep 2 | |
| done | |
| - name: Build docs | |
| run: bleep generate-docs | |
| release: | |
| timeout-minutes: 15 | |
| runs-on: ubuntu-latest | |
| needs: [ scalafmt, tests, build-postgres, build-mariadb, build-oracle, build-duckdb, build-sqlserver, build-db2 ] | |
| if: "startsWith(github.ref, 'refs/tags/v')" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: bleep-build/bleep-setup-action@0.0.1 | |
| - uses: coursier/cache-action@v6 | |
| with: | |
| extraFiles: bleep.yaml | |
| - id: get_version | |
| uses: battila7/get-version-action@v2 | |
| with: | |
| repo-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Release | |
| run: bleep --dev publish | |
| env: | |
| PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} | |
| PGP_SECRET: ${{ secrets.PGP_SECRET }} | |
| SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
| SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | |
| - name: Create github release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| repo-token: ${{ secrets.GITHUB_TOKEN }} | |
| name: "${{ steps.get_version.outputs.version-without-v }}" | |
| prerelease: false | |
| generate_release_notes: true | |
| permissions: | |
| contents: write |