Feat: add release image workflows

Fix:
- transaction didn't do shit because of my shit code
This commit is contained in:
2025-12-09 01:28:59 +08:00
parent 2208307c48
commit a2b00e6976
3 changed files with 41 additions and 10 deletions

View File

@@ -10,8 +10,28 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Run go vet - name: Run go vet
run: go vet run: go vet
check-swagger-up-to-date:
runs-on: imgbuilder
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run make swagger
run: make swagger
- name: Check diff
run: |
if ! git diff --exit-code; then
echo "ERROR: swagger introduced uncommitted changes!"
echo "Please commit generated files."
git status
git diff
exit 1
else
echo "No uncommitted changes detected. OpenAPI is up-to-date."
fi
run-go-test: run-go-test:
needs: run-go-vet needs:
- run-go-vet
- check-swagger-up-to-date
runs-on: imgbuilder runs-on: imgbuilder
steps: steps:
- name: Checkout repository - name: Checkout repository
@@ -29,3 +49,14 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Run make docker-clean - name: Run make docker-clean
run: make docker-clean run: make docker-clean
release-image:
needs:
- run-go-test
runs-on: imgbuilder
steps:
- name: Build and push image
uses: https://gitea.konchin.com/action/docker@main
with:
registry-certificate: ${{ vars.ROOTCA }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}

View File

@@ -16,7 +16,7 @@ swagger:
$(SWAG) init -o docs -g cmds/serve.go -pdl 1 $(SWAG) init -o docs -g cmds/serve.go -pdl 1
docker: $(TARGET) docker: $(TARGET)
$(COMPOSE) up -d --force-recreate --build backend $(DOCKER) compose up -d --force-recreate --build backend
$(TARGET): $(SOURCE) $(TARGET): $(SOURCE)
$(GO_ENV) go build -o $@ $(GO_ENV) go build -o $@

View File

@@ -61,7 +61,7 @@ func (self *BunDatabase) UpdateRefreshToken(
} }
err := self.db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error { err := self.db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error {
err := self.db.NewSelect(). err := tx.NewSelect().
Model(&ret). Model(&ret).
WherePK(). WherePK().
Scan(ctx) Scan(ctx)
@@ -76,7 +76,7 @@ func (self *BunDatabase) UpdateRefreshToken(
return err return err
} }
_, err = self.db.NewUpdate(). _, err = tx.NewUpdate().
Model((*models.Session)(nil)). Model((*models.Session)(nil)).
Set("refresh_token = ?", ret.RefreshToken). Set("refresh_token = ?", ret.RefreshToken).
Where("user_id = ?", userId). Where("user_id = ?", userId).
@@ -176,7 +176,7 @@ func (self *BunDatabase) UpdateAliases(
Name: ali, Name: ali,
}) })
} }
_, err := self.db.NewInsert(). _, err := tx.NewInsert().
Model(&aliases). Model(&aliases).
On("CONFLICT (name) DO NOTHING"). On("CONFLICT (name) DO NOTHING").
Exec(ctx) Exec(ctx)
@@ -191,7 +191,7 @@ func (self *BunDatabase) UpdateAliases(
ImageId: imageId, ImageId: imageId,
}) })
} }
_, err = self.db.NewInsert(). _, err = tx.NewInsert().
Model(&rels). Model(&rels).
On(`CONFLICT ("alias_id", "image_id") DO NOTHING`). On(`CONFLICT ("alias_id", "image_id") DO NOTHING`).
Exec(ctx) Exec(ctx)
@@ -218,14 +218,14 @@ func (self *BunDatabase) DeleteImage(
imageId int64, imageId int64,
) error { ) error {
return self.db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error { return self.db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error {
_, err := self.db.NewDelete(). _, err := tx.NewDelete().
Model((*models.Image)(nil)). Model((*models.Image)(nil)).
Where("id = ?", imageId). Where("id = ?", imageId).
Exec(ctx) Exec(ctx)
if err != nil { if err != nil {
return err return err
} }
_, err = self.db.NewDelete(). _, err = tx.NewDelete().
Model((*models.AliasImage)(nil)). Model((*models.AliasImage)(nil)).
Where("image_id = ?", imageId). Where("image_id = ?", imageId).
Exec(ctx) Exec(ctx)
@@ -241,14 +241,14 @@ func (self *BunDatabase) DeleteAlias(
aliasId int64, aliasId int64,
) error { ) error {
return self.db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error { return self.db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error {
_, err := self.db.NewDelete(). _, err := tx.NewDelete().
Model((*models.Alias)(nil)). Model((*models.Alias)(nil)).
Where("id = ?", aliasId). Where("id = ?", aliasId).
Exec(ctx) Exec(ctx)
if err != nil { if err != nil {
return err return err
} }
_, err = self.db.NewDelete(). _, err = tx.NewDelete().
Model((*models.AliasImage)(nil)). Model((*models.AliasImage)(nil)).
Where("alias_id = ?", aliasId). Where("alias_id = ?", aliasId).
Exec(ctx) Exec(ctx)