-
Notifications
You must be signed in to change notification settings - Fork 0
116 lines (94 loc) · 2.8 KB
/
build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
name: Build
defaults:
run:
shell: bash
env:
SQLC_VERSION: 1.27.0
WASI_SDK_VERSION: 22
DOTNET_VERSION: '8.0.x'
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "*" ]
paths:
- "**"
- "!**.md"
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: ${{ env.DOTNET_VERSION }}
- name: .NET Lint
uses: zyactions/dotnet-lint@v1
with:
implicit-restore: true
workspace: sqlc-gen-csharp.sln
exclude: |
GeneratedProtobuf
examples
build-wasm:
name: Build (WASM)
needs: [lint]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Load .env file
uses: xom9ikk/dotenv@v2.3.0
with:
load-mode: strict
- name: Setup Dotnet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: install Wasi workload
run: dotnet workload install wasi-experimental
- name: Setup Derived Variables
run: |
echo "WASI_SDK_FOLDER_NAME=wasi-sdk-${{ env.WASI_SDK_VERSION }}.0" >> $GITHUB_ENV
echo "WASI_SDK_FILENAME=wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-linux.tar.gz" >> $GITHUB_ENV
- name: Download Wasi SDK
run: |
wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${{ env.WASI_SDK_VERSION }}/${{ env.WASI_SDK_FILENAME }}
tar xf ${{ env.WASI_SDK_FILENAME }}
chmod -R 755 ${{ env.WASI_SDK_FILENAME }}
- name: Dotnet Wasm Publish
shell: bash
run: |
set -e
WASI_SDK_PATH="$(pwd)/${{ env.WASI_SDK_FOLDER_NAME }}" dotnet publish WasmRunner -c release
./scripts/wasm/copy_plugin_to.sh dist
- name: upload wasm plugin as artifact
uses: actions/upload-artifact@v4
with:
name: wasm-file
path: dist/plugin.wasm
codegen-tests:
name: Codegen Tests
runs-on: ubuntu-latest
needs: [build-wasm]
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: wasm-file
path: dist
- name: Load .env file
uses: xom9ikk/dotenv@v2.3.0
with:
load-mode: strict
- uses: sqlc-dev/setup-sqlc@v4
with:
sqlc-version: '${{ env.SQLC_VERSION }}'
- name: Updating plugin sha
run: ./scripts/wasm/update_sha.sh sqlc.ci.yaml
- name: Verify pushed generated code is synced
run: |
./scripts/wasm/update_sha.sh sqlc.ci.yaml
sqlc -f sqlc.ci.yaml diff