Add SQL Server support to Typo with comprehensive type system (#170) #738
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' ] | |
| 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/[email protected] | |
| - 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/[email protected] | |
| - 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-scala212: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: bleep-build/[email protected] | |
| - uses: coursier/cache-action@v6 | |
| with: | |
| extraFiles: bleep.yaml | |
| - name: Compile for 2.12 | |
| run: bleep compile typo@jvm212 | |
| build-postgres: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 25 | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| postgres-version: [12, 16] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: bleep-build/[email protected] | |
| - 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 all Scala versions | |
| run: | | |
| bleep compile typo@jvm213 | |
| bleep compile typo@jvm3 | |
| - name: Run Scala 2.13 Postgres tests | |
| env: | |
| CI: true | |
| run: | | |
| bleep test typo-tester-anorm@jvm213 | |
| bleep test typo-tester-doobie@jvm213 | |
| bleep test typo-tester-zio-jdbc@jvm213 | |
| - name: Run Scala 3 Postgres tests | |
| env: | |
| CI: true | |
| run: | | |
| bleep test typo-tester-anorm@jvm3 | |
| bleep test typo-tester-doobie@jvm3 | |
| bleep test typo-tester-zio-jdbc@jvm3 | |
| bleep test typo-tester-typo-scala-new | |
| bleep test typo-tester-typo-scala-old | |
| - name: Run Java Postgres tests | |
| env: | |
| CI: true | |
| run: bleep test typo-tester-typo-java | |
| - name: Sourcegen | |
| run: bleep sourcegen | |
| - name: Run Kotlin Postgres tests | |
| env: | |
| CI: true | |
| run: ./gradlew :typo-tester-typo-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/[email protected] | |
| - 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 typo -ppassword -e "SELECT 1" typo 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 typo-tester-mariadb-scala | |
| - name: Run MariaDB Java tests | |
| env: | |
| CI: true | |
| run: bleep test typo-tester-mariadb-java | |
| - name: Sourcegen | |
| run: bleep sourcegen | |
| - name: Run MariaDB Kotlin tests | |
| env: | |
| CI: true | |
| run: ./gradlew :typo-tester-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/[email protected] | |
| - 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 typo-tester-oracle-scala | |
| bleep test typo-tester-oracle-scala-new | |
| - name: Run Oracle Java tests | |
| env: | |
| CI: true | |
| run: bleep test typo-tester-oracle-java | |
| - name: Sourcegen | |
| run: bleep sourcegen | |
| - name: Run Oracle Kotlin tests | |
| env: | |
| CI: true | |
| run: ./gradlew :typo-tester-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/[email protected] | |
| - 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 typo-tester-duckdb-scala | |
| - name: Run DuckDB Java tests | |
| env: | |
| CI: true | |
| run: bleep test typo-tester-duckdb-java | |
| - name: Sourcegen | |
| run: bleep sourcegen | |
| - name: Run DuckDB Kotlin tests | |
| env: | |
| CI: true | |
| run: ./gradlew :typo-tester-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/[email protected] | |
| - 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: Run SQL Server Scala tests | |
| env: | |
| CI: true | |
| run: bleep test typo-tester-sqlserver-scala | |
| - name: Run SQL Server Java tests | |
| env: | |
| CI: true | |
| run: bleep test typo-tester-sqlserver-java | |
| - name: Sourcegen | |
| run: bleep sourcegen | |
| - name: Run SQL Server Kotlin tests | |
| env: | |
| CI: true | |
| run: ./gradlew :typo-tester-sqlserver-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/[email protected] | |
| - 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 openapi-test-scala-http4s | |
| bleep compile openapi-test-scala-spring | |
| - name: Compile Java OpenAPI testers | |
| run: | | |
| bleep compile openapi-test-java-jaxrs-client-jdk | |
| bleep compile openapi-test-java-quarkus | |
| bleep compile openapi-test-java-spring | |
| - name: Sourcegen | |
| run: bleep sourcegen | |
| - name: Compile Kotlin OpenAPI testers (via gradle) | |
| run: | | |
| ./gradlew :openapi-test-kotlin-server-jaxrs-client-jdk:compileKotlin | |
| ./gradlew :openapi-test-kotlin-server-spring-client-jdk:compileKotlin | |
| ./gradlew :openapi-test-kotlin-server-quarkus-reactive-client-jdk:compileKotlin | |
| build-docs: | |
| timeout-minutes: 20 | |
| runs-on: ubuntu-latest | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| env: | |
| PG_MAJOR: 14 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: bleep-build/[email protected] | |
| - 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 ] | |
| if: "startsWith(github.ref, 'refs/tags/v')" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: bleep-build/[email protected] | |
| - 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 |