Skip to content

[release] [minor] added type validation with steep check (#29) #56

[release] [minor] added type validation with steep check (#29)

[release] [minor] added type validation with steep check (#29) #56

Workflow file for this run

name: CI
defaults:
run:
shell: bash
permissions:
contents: write
pull-requests: write
on:
push:
branches: [ "main" ]
paths:
- "**"
- "!**.md"
- "!ruby-wasm-poc/**"
pull_request:
branches: [ "*" ]
paths:
- "**"
- "!**.md"
- "!ruby-wasm-poc/**"
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v4
- name: Set up .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: "8.0.x"
- name: .NET Lint
uses: zyactions/dotnet-lint@v1
with:
implicit-restore: true
workspace: sqlc-gen-ruby.sln
exclude: GeneratedProtobuf
build:
name: Build
runs-on: ${{ matrix.os }}
needs: [lint]
strategy:
matrix:
os: [ 'ubuntu-latest' ]
architecture: [ 'x64', 'arm64' ]
steps:
- uses: actions/checkout@v4
- name: Load .env file
uses: xom9ikk/[email protected]
with:
load-mode: strict
- name: Setup Dotnet
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
- name: Install Wasi workload
run: dotnet workload install wasi-experimental
- name: Download Wasi SDK on Ubuntu
if: runner.os == 'Linux'
run: |
wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-22/wasi-sdk-22.0-linux.tar.gz
tar xf wasi-sdk-22.0-linux.tar.gz
chmod -R 755 wasi-sdk-22.0
- name: Dotnet Wasm Publish
run: |
WASI_SDK_PATH="$(pwd)/wasi-sdk-22.0" dotnet publish WasmRunner -c release
./scripts/wasm/copy_plugin_to.sh dist
- name: upload wasm plugin as artifact
if: matrix.architecture == 'arm64' # this needs to happen once across matrix
uses: actions/upload-artifact@v4
with:
name: wasm-file
path: dist/plugin.wasm
codegen_test:
name: Codegen Test
needs: [build]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ruby-version: [ '3.3' ]
generate-types: [ 'true' ]
generate-gemfile: [ 'false' ]
steps:
- name: Check out Git repository
uses: actions/checkout@v4
- name: Load .env file
uses: xom9ikk/[email protected]
with:
load-mode: strict
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true
- uses: actions/download-artifact@v4
with:
name: wasm-file
path: dist
- uses: sqlc-dev/setup-sqlc@v4
with:
sqlc-version: '1.25.0'
- name: Updating plugin sha
run: ./scripts/wasm/update_sha.sh ${SQLC_CI_FILE}
- name: Codegen Test
run: ./scripts/tests/run_codegen.sh ${SQLC_CI_FILE} \
${{ matrix.ruby-version }} ${{ matrix.generate-types }} ${{ matrix.generate-gemfile }}
- name: Steep check
if: ${{ matrix.generate-types == 'true' }}
run: rake steep
end2end_tests:
name: End-to-End Tests
runs-on: ubuntu-latest
needs: [build, codegen_test]
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: wasm-file
path: dist
- uses: sqlc-dev/setup-sqlc@v4
with:
sqlc-version: '1.25.0'
- name: Load .env file
uses: xom9ikk/[email protected]
with:
load-mode: strict
- name: Verify pushed generated code is synced
run: |
./scripts/wasm/update_sha.sh ${SQLC_CI_FILE}
sqlc -f ${SQLC_CI_FILE} diff
- name: Docker compose
uses: hoverkraft-tech/[email protected]
with:
services: |
mysqldb
postgresdb
plugin-tests
- name: End-to-End Tests
run: ./scripts/tests/run_end2end.sh