Skip to content
This repository was archived by the owner on Jul 19, 2026. It is now read-only.

feat(crud): add Replace (full-replace) and PreserveServerFields #175

feat(crud): add Replace (full-replace) and PreserveServerFields

feat(crud): add Replace (full-replace) and PreserveServerFields #175

Workflow file for this run

name: CI
on:
push:
branches: [main]
tags:
- "v*"
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:17
env:
POSTGRES_USER: den
POSTGRES_PASSWORD: den
POSTGRES_DB: den_test
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
strategy:
matrix:
go-version: ['1.25', '1.26']
env:
MISE_GO_VERSION: ${{ matrix.go-version }}
DEN_POSTGRES_URL: postgres://den:den@localhost:5432/den_test?sslmode=disable
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1
with:
cache: true
- run: mise run test-ci ${{ matrix.go-version == '1.26' && '-race' || '' }}
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1
with:
cache: true
- run: mise run lint
- run: mise run vuln
coverage:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:17
env:
POSTGRES_USER: den
POSTGRES_PASSWORD: den
POSTGRES_DB: den_test
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
DEN_POSTGRES_URL: postgres://den:den@localhost:5432/den_test?sslmode=disable
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1
with:
cache: true
- name: Coverage gate (per-package ≥80%)
run: mise run coverage-check
zizmor:
name: Audit workflows (zizmor)
runs-on: ubuntu-latest
permissions:
contents: read
actions: read
security-events: write
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: zizmorcore/zizmor-action@b1d7e1fb5de872772f31590499237e7cce841e8e # v0.5.3
release:
name: Create GitHub Release
if: startsWith(github.ref, 'refs/tags/v')
needs: [test, lint, coverage, zizmor]
runs-on: ubuntu-latest
permissions:
contents: write
env:
VERSION: ${{ github.ref_name }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1
with:
cache: false # release jobs must not consume PR-poisoned caches
- name: Extract changelog for this version
run: mise run release-notes "$VERSION" > release-notes.md
- name: Create GitHub Release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release create "$VERSION" --title "$VERSION" --notes-file release-notes.md