-
Notifications
You must be signed in to change notification settings - Fork 1
132 lines (115 loc) · 3.3 KB
/
Copy pathci.yml
File metadata and controls
132 lines (115 loc) · 3.3 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
131
132
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
test:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v22
- name: Setup Nix Cache
uses: DeterminateSystems/magic-nix-cache-action@v14
with:
use-flakehub: disabled
use-gha-cache: enabled
- name: Run Tests
run: |
nix develop --command go tool ginkgo run -r \
-coverprofile=coverage.out -covermode=atomic ./...
- name: Run Octocov
uses: k1LoW/octocov-action@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
build:
needs: test
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
nix_system: x86_64-linux
- os: macos-15
nix_system: aarch64-darwin
runs-on: ${{ matrix.os }}
permissions:
contents: read
timeout-minutes: 60
env:
BIN_PATH: sqlc-gen-queries-${{ matrix.nix_system }}
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v22
- name: Setup Nix Cache
uses: DeterminateSystems/magic-nix-cache-action@v14
with:
use-flakehub: disabled
use-gha-cache: enabled
- name: Build with Nix
run: nix build . --system ${{ matrix.nix_system }}
- name: Prepare Binary
run: install -m 0755 result/bin/sqlc-gen-queries "$BIN_PATH"
- name: Upload Binary
uses: actions/upload-artifact@v7
with:
path: ${{ env.BIN_PATH }}
archive: false
if-no-files-found: error
retention-days: 1
release:
needs: build
if: github.event_name == 'push'
runs-on: ubuntu-latest
outputs:
release_created: ${{ steps.release.outputs.release_created }}
tag_name: ${{ steps.release.outputs.tag_name }}
permissions:
contents: write
issues: write
pull-requests: write
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Create Release PR
id: release
uses: googleapis/release-please-action@v5
with:
manifest-file: .github/config/release-please-manifest.json
config-file: .github/config/release-please-config.json
target-branch: main
publish:
needs: release
if: needs.release.outputs.release_created
runs-on: ubuntu-latest
permissions:
contents: write
timeout-minutes: 10
steps:
- name: Download Binaries
uses: actions/download-artifact@v8
with:
pattern: sqlc-gen-queries-*
merge-multiple: true
skip-decompress: true
path: release/
- name: Upload Release Assets
uses: softprops/action-gh-release@v3
with:
tag_name: ${{ needs.release.outputs.tag_name }}
files: release/*