-
Notifications
You must be signed in to change notification settings - Fork 7
130 lines (105 loc) · 3.23 KB
/
Copy pathbuild.yml
File metadata and controls
130 lines (105 loc) · 3.23 KB
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: Build
defaults:
run:
shell: bash
env:
SQLC_VERSION: 1.30.0
WASI_SDK_VERSION: 22
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "*" ]
paths:
- "**"
- "!**.md"
- "!benchmark/BenchmarkDotNet.Artifacts/**"
jobs:
build-wasm:
name: Build (WASM)
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:
global-json-file: global.json
- 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
lint:
name: Lint
needs: [build-wasm]
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v4
- name: Set up .NET
uses: actions/setup-dotnet@v4
with:
global-json-file: global.json
- name: .NET Lint
uses: zyactions/dotnet-lint@v1
with:
implicit-restore: true
workspace: sqlc-gen-csharp.sln
exclude: |
GeneratedProtobuf
examples
benchmark/*SqlcImpl
codegen-tests:
name: Codegen Tests
runs-on: ubuntu-latest
needs: [build-wasm]
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:
global-json-file: global.json
- uses: sqlc-dev/setup-sqlc@v4
with:
sqlc-version: '${{ env.SQLC_VERSION }}'
- name: Verify pushed generated tests code is synced
run: |
./end2end/scripts/generate_tests.sh
git diff --quiet
- uses: actions/download-artifact@v4
with:
name: wasm-file
path: dist
- name: Updating plugin sha
run: ./scripts/wasm/update_sha.sh sqlc.ci.yaml
- name: Verify pushed generated code is synced
run: sqlc -f sqlc.ci.yaml diff
- name: Verify pushed codegen requests are synced
run: |
dotnet publish LocalRunner -c release --output dist/
sqlc -f sqlc.request.generated.yaml diff