Skip to content

Commit e8693f3

Browse files
committed
feat: initial commit
0 parents  commit e8693f3

116 files changed

Lines changed: 15866 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
8+
jobs:
9+
test:
10+
runs-on: ubuntu-latest
11+
services:
12+
postgres:
13+
image: postgres:17-alpine
14+
env:
15+
POSTGRES_USER: sqlc
16+
POSTGRES_PASSWORD: sqlc
17+
POSTGRES_DB: sqlc_test
18+
ports:
19+
- 5432:5432
20+
options: >-
21+
--health-cmd pg_isready
22+
--health-interval 10s
23+
--health-timeout 5s
24+
--health-retries 5
25+
26+
steps:
27+
- uses: actions/checkout@v4
28+
29+
- name: Install sqlc
30+
uses: sqlc-dev/setup-sqlc@v5
31+
with:
32+
sqlc-version: "1.30.0"
33+
34+
- name: Install Rust stable
35+
uses: dtolnay/rust-toolchain@stable
36+
with:
37+
targets: wasm32-wasip1
38+
39+
- name: Cache cargo
40+
uses: Swatinem/rust-cache@v2
41+
42+
- name: Format check
43+
run: cargo fmt --all --check
44+
45+
- name: Clippy
46+
run: cargo clippy --workspace --all-targets -- -D warnings
47+
48+
- name: Snapshot tests
49+
run: cargo test --workspace
50+
env:
51+
INSTA_UPDATE: unseen
52+
53+
- name: Build WASM plugin
54+
run: cargo build --target wasm32-wasip1
55+
56+
- name: Integration tests
57+
run: cargo test -p basic
58+
env:
59+
DATABASE_URL: postgres://sqlc:sqlc@localhost:5432/sqlc_test
60+
61+
proto-check:
62+
runs-on: ubuntu-latest
63+
steps:
64+
- uses: actions/checkout@v4
65+
66+
- name: Install buf
67+
uses: bufbuild/buf-action@v1
68+
with:
69+
setup_only: true
70+
71+
- name: Install protoc-gen-buffa
72+
run: cargo install --locked [email protected] [email protected]
73+
74+
- name: Verify proto bindings are up to date
75+
run: |
76+
buf generate
77+
git diff --exit-code src/plugin/
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: Release Please
2+
3+
on:
4+
push:
5+
branches: [main]
6+
7+
permissions:
8+
contents: write
9+
pull-requests: write
10+
11+
jobs:
12+
release-please:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Run Release Please
16+
uses: googleapis/release-please-action@v4
17+
with:
18+
token: ${{ secrets.RELEASE_TOKEN }}
19+
config-file: release-please-config.json
20+
manifest-file: .release-please-manifest.json

.github/workflows/release.yml

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- v*
7+
8+
concurrency:
9+
group: release-${{ github.workflow }}-${{ github.ref }}
10+
cancel-in-progress: false
11+
12+
permissions:
13+
contents: write
14+
15+
jobs:
16+
verify:
17+
runs-on: ubuntu-latest
18+
services:
19+
postgres:
20+
image: postgres:17-alpine
21+
env:
22+
POSTGRES_USER: sqlc
23+
POSTGRES_PASSWORD: sqlc
24+
POSTGRES_DB: sqlc_test
25+
ports:
26+
- 5432:5432
27+
options: >-
28+
--health-cmd pg_isready
29+
--health-interval 10s
30+
--health-timeout 5s
31+
--health-retries 5
32+
33+
steps:
34+
- uses: actions/checkout@v4
35+
36+
- name: Install sqlc
37+
uses: sqlc-dev/setup-sqlc@v5
38+
with:
39+
sqlc-version: "1.30.0"
40+
41+
- name: Install Rust stable
42+
uses: dtolnay/rust-toolchain@stable
43+
with:
44+
targets: wasm32-wasip1
45+
46+
- name: Cache cargo
47+
uses: Swatinem/rust-cache@v2
48+
49+
- name: Format check
50+
run: cargo fmt --all --check
51+
52+
- name: Clippy
53+
run: cargo clippy --workspace --all-targets -- -D warnings
54+
55+
- name: Snapshot tests
56+
run: cargo test --workspace
57+
env:
58+
INSTA_UPDATE: unseen
59+
60+
- name: Build release WASM plugin
61+
run: cargo build --release --target wasm32-wasip1
62+
63+
- name: Integration tests
64+
run: cargo test -p basic
65+
env:
66+
DATABASE_URL: postgres://sqlc:sqlc@localhost:5432/sqlc_test
67+
68+
publish-release:
69+
needs: verify
70+
runs-on: ubuntu-latest
71+
permissions:
72+
contents: write
73+
74+
steps:
75+
- uses: actions/checkout@v4
76+
with:
77+
fetch-depth: 0
78+
79+
- name: Install Rust stable
80+
uses: dtolnay/rust-toolchain@stable
81+
with:
82+
targets: wasm32-wasip1
83+
84+
- name: Cache cargo
85+
uses: Swatinem/rust-cache@v2
86+
87+
- name: Build release WASM plugin
88+
run: cargo build --release --target wasm32-wasip1
89+
90+
- name: Package release assets
91+
run: |
92+
mkdir -p dist
93+
cp target/wasm32-wasip1/release/sqlc-gen-sqlx.wasm dist/sqlc-gen-sqlx.wasm
94+
if command -v sha256sum >/dev/null 2>&1; then
95+
sha256sum dist/sqlc-gen-sqlx.wasm > dist/sqlc-gen-sqlx.wasm.sha256
96+
else
97+
shasum -a 256 dist/sqlc-gen-sqlx.wasm > dist/sqlc-gen-sqlx.wasm.sha256
98+
fi
99+
100+
- name: Ensure GitHub release exists
101+
env:
102+
GH_TOKEN: ${{ github.token }}
103+
run: |
104+
if gh release view "${GITHUB_REF_NAME}" >/dev/null 2>&1; then
105+
exit 0
106+
fi
107+
108+
if [[ "${GITHUB_REF_NAME}" == *-* ]]; then
109+
gh release create "${GITHUB_REF_NAME}" \
110+
--title "${GITHUB_REF_NAME}" \
111+
--generate-notes \
112+
--prerelease
113+
else
114+
gh release create "${GITHUB_REF_NAME}" \
115+
--title "${GITHUB_REF_NAME}" \
116+
--generate-notes \
117+
--latest
118+
fi
119+
120+
- name: Upload release assets
121+
env:
122+
GH_TOKEN: ${{ github.token }}
123+
run: |
124+
gh release upload "${GITHUB_REF_NAME}" \
125+
dist/sqlc-gen-sqlx.wasm \
126+
dist/sqlc-gen-sqlx.wasm.sha256 \
127+
--clobber

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/target/
2+
_sqlc_dev.yaml
3+
.memsearch

.release-please-manifest.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
".": "0.0.0"
3+
}

0 commit comments

Comments
 (0)