From 205902205f45956f55fe385d180eb9fdae73af10 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Wed, 24 Sep 2025 21:21:40 +0200 Subject: [PATCH 01/14] 1.3.0: ci: add first forgejo ci #1 Signed-off-by: GnomeZworc --- .forgejo/workflows/test.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .forgejo/workflows/test.yml diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml new file mode 100644 index 0000000..6506d74 --- /dev/null +++ b/.forgejo/workflows/test.yml @@ -0,0 +1,20 @@ +on: + pull_request: + types: [opened, synchronize] + +jobs: + lint: + runs-on: raw + steps: + - name: Check out repository + uses: actions/checkout@v3 + + - name: Setup golang + uses: actions/setup-go@v5 + with: + go-version: "1.21" + + - name: golangci-lint + uses: https://github.com/golangci/golangci-lint-action@v8 + with: + version: v2.1 \ No newline at end of file -- 2.49.1 From 3f0a6382665447e44f643e439a4c8ea396c89a28 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Thu, 25 Sep 2025 23:20:51 +0200 Subject: [PATCH 02/14] 1.3.0: ci: add test for the code #1 Signed-off-by: GnomeZworc --- .forgejo/workflows/test.yml | 43 ++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml index 6506d74..2bc7ce1 100644 --- a/.forgejo/workflows/test.yml +++ b/.forgejo/workflows/test.yml @@ -1,3 +1,5 @@ +name: Test Pipeline + on: pull_request: types: [opened, synchronize] @@ -17,4 +19,43 @@ jobs: - name: golangci-lint uses: https://github.com/golangci/golangci-lint-action@v8 with: - version: v2.1 \ No newline at end of file + version: v2.1 + ci-test: + runs-on: raw + steps: + - name: Check out repository + uses: actions/checkout@v3 + + - name: Install docker-cli + run: | + apt-get update + apt-get install -y ca-certificates curl + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc + chmod a+r /etc/apt/keyrings/docker.asc + + # Add the repository to Apt sources: + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update + apt-get install -y docker-ce-cli + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build image + run: | + docker build --pull -t users-release --target release . + + - name: Run Test + run: | + bash -ex ./scripts/prepar_test.sh + . ./config/test.src + go test -v ./cmd/ + go install gotest.tools/gotestsum@latest + gotestsum --junitfile report.xml --format testname \ No newline at end of file -- 2.49.1 From feb4e93f032ff789b4dc5eaa73b6b6dbfea21866 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Thu, 25 Sep 2025 23:24:14 +0200 Subject: [PATCH 03/14] 1.3.0: ci: add container gestion #1 Signed-off-by: GnomeZworc --- .forgejo/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml index 2bc7ce1..009f560 100644 --- a/.forgejo/workflows/test.yml +++ b/.forgejo/workflows/test.yml @@ -22,6 +22,8 @@ jobs: version: v2.1 ci-test: runs-on: raw + container: + options: --privileged -v /var/run/docker.sock:/var/run/docker.sock steps: - name: Check out repository uses: actions/checkout@v3 -- 2.49.1 From 66471df0245c3b414e4b2c73b57399e0d1536fc2 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Thu, 25 Sep 2025 23:29:36 +0200 Subject: [PATCH 04/14] 1.3.0: docker: update url link #1 Signed-off-by: GnomeZworc --- Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index e8ee6d4..cc0783d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,8 +4,9 @@ FROM golang:1.21-alpine AS develop WORKDIR / RUN apk update && apk add --no-cache curl tar && \ - curl -O https://gitlab.g3e.fr/api/v4/projects/34/packages/generic/minicurl/v1.0.0/minicurl_linux_amd64.tar.gz && \ - tar xzvf minicurl_linux_amd64.tar.gz + curl -OJ https://git.g3e.fr/api/packages/H6N/generic/minicurl/1.1.0/minicurl-linux-amd64 && \ + mv minicurl-linux-amd64 minicurl && \ + chmod +x ./minicurl # Changement du répertoire de travail WORKDIR /app -- 2.49.1 From ce6b78d13e8adbd7d1936c7b68609815ee02d0a6 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Fri, 26 Sep 2025 02:08:36 +0200 Subject: [PATCH 05/14] 1.3.0: ci: change to alpine image Signed-off-by: GnomeZworc --- .forgejo/workflows/test.yml | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml index 009f560..4cc5c3e 100644 --- a/.forgejo/workflows/test.yml +++ b/.forgejo/workflows/test.yml @@ -23,6 +23,7 @@ jobs: ci-test: runs-on: raw container: + image: node:22.20.0-alpine3.22 options: --privileged -v /var/run/docker.sock:/var/run/docker.sock steps: - name: Check out repository @@ -30,19 +31,8 @@ jobs: - name: Install docker-cli run: | - apt-get update - apt-get install -y ca-certificates curl - install -m 0755 -d /etc/apt/keyrings - curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc - chmod a+r /etc/apt/keyrings/docker.asc - - # Add the repository to Apt sources: - echo \ - "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ - $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ - tee /etc/apt/sources.list.d/docker.list > /dev/null - apt-get update - apt-get install -y docker-ce-cli + apk update && apk add --no-cache docker-cli + apk add bash - name: Set up QEMU uses: docker/setup-qemu-action@v3 -- 2.49.1 From e80bf3abc376fda8e39a2f59e7141208be81d412 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Fri, 26 Sep 2025 02:13:19 +0200 Subject: [PATCH 06/14] 1.3.0: ci: rollback change image #1 Signed-off-by: GnomeZworc --- .forgejo/workflows/test.yml | 16 +++++++++++++--- scripts/prepar_test.sh | 11 +---------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml index 4cc5c3e..009f560 100644 --- a/.forgejo/workflows/test.yml +++ b/.forgejo/workflows/test.yml @@ -23,7 +23,6 @@ jobs: ci-test: runs-on: raw container: - image: node:22.20.0-alpine3.22 options: --privileged -v /var/run/docker.sock:/var/run/docker.sock steps: - name: Check out repository @@ -31,8 +30,19 @@ jobs: - name: Install docker-cli run: | - apk update && apk add --no-cache docker-cli - apk add bash + apt-get update + apt-get install -y ca-certificates curl + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc + chmod a+r /etc/apt/keyrings/docker.asc + + # Add the repository to Apt sources: + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update + apt-get install -y docker-ce-cli - name: Set up QEMU uses: docker/setup-qemu-action@v3 diff --git a/scripts/prepar_test.sh b/scripts/prepar_test.sh index 2db967f..fed653e 100644 --- a/scripts/prepar_test.sh +++ b/scripts/prepar_test.sh @@ -1,16 +1,7 @@ #!/bin/bash - -cat <> /etc/apk/repositories -http://ftp.halifax.rwth-aachen.de/alpine/v3.16/main -http://ftp.halifax.rwth-aachen.de/alpine/v3.16/community -ENDFILE -apk update -apk add docker docker-cli-compose docker version docker compose version -docker load --input "$IMAGE_TYPE-$IMAGE_VERSION-release.tar.gz" -docker tag $CI_REGISTRY_IMAGE:$IMAGE_VERSION-release $IMAGE_TYPE:latest cat < docker-compose.yml version: '3.1' @@ -29,7 +20,7 @@ services: timeout: 5s retries: 5 users: - image: $IMAGE_TYPE + image: users-release volumes: - ./docker/keys:/keys depends_on: -- 2.49.1 From 7f5a418f28faac758829228082dabac4f46d5c4a Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Fri, 26 Sep 2025 02:21:47 +0200 Subject: [PATCH 07/14] 1.3.0: docker: mise au propre Signed-off-by: GnomeZworc --- scripts/prepar_test.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/scripts/prepar_test.sh b/scripts/prepar_test.sh index fed653e..032e9af 100644 --- a/scripts/prepar_test.sh +++ b/scripts/prepar_test.sh @@ -3,9 +3,7 @@ docker version docker compose version -cat < docker-compose.yml -version: '3.1' - +cat < compose.yml services: postgres: image: postgres:15.2-alpine3.17 -- 2.49.1 From 5eddb8cec5982dc9cb3e38dfbdb79d1517c96f78 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Fri, 26 Sep 2025 02:22:09 +0200 Subject: [PATCH 08/14] 1.3.0: ci: add golang to forgejo Signed-off-by: GnomeZworc --- .forgejo/workflows/test.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml index 009f560..8216c3b 100644 --- a/.forgejo/workflows/test.yml +++ b/.forgejo/workflows/test.yml @@ -49,6 +49,11 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 + + - name: Setup golang + uses: actions/setup-go@v5 + with: + go-version: "1.21" - name: Build image run: | -- 2.49.1 From e16d9ed188579a476ee298610382aaa05745aac4 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Fri, 26 Sep 2025 02:36:21 +0200 Subject: [PATCH 09/14] 1.3.0: ci: update with lint params Signed-off-by: GnomeZworc --- .forgejo/workflows/test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml index 8216c3b..a28d932 100644 --- a/.forgejo/workflows/test.yml +++ b/.forgejo/workflows/test.yml @@ -20,6 +20,8 @@ jobs: uses: https://github.com/golangci/golangci-lint-action@v8 with: version: v2.1 + args: --issues-exit-code 0 --out-format code-climate + ci-test: runs-on: raw container: @@ -53,7 +55,7 @@ jobs: - name: Setup golang uses: actions/setup-go@v5 with: - go-version: "1.21" + go-version: "1.24" - name: Build image run: | -- 2.49.1 From fa9f3c490fbb95b05900bc0e3b676459f8b54303 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Fri, 26 Sep 2025 02:36:44 +0200 Subject: [PATCH 10/14] 1.3.0: docker: update golang version Signed-off-by: GnomeZworc --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index cc0783d..68ff1a2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.21-alpine AS develop +FROM golang:1.24-alpine AS develop # Changement du répertoire de travail WORKDIR / -- 2.49.1 From 3de726658f77241b018d23f89da34544264a288a Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Fri, 26 Sep 2025 02:37:24 +0200 Subject: [PATCH 11/14] 1.3.0: go: add return check Signed-off-by: GnomeZworc --- internal/databases.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/internal/databases.go b/internal/databases.go index 97f3be6..aee5bb1 100644 --- a/internal/databases.go +++ b/internal/databases.go @@ -15,7 +15,9 @@ func DropUnusedColumns(DB *gorm.DB, values ...interface{}) { for _, dst := range values { stmt := &gorm.Statement{DB: DB} - stmt.Parse(dst) + if stmt.Parse(dst) != nil { + return + } fields := stmt.Schema.Fields columns, _ := DB.Debug().Migrator().ColumnTypes(dst) @@ -28,7 +30,9 @@ func DropUnusedColumns(DB *gorm.DB, values ...interface{}) { } } if !found { - DB.Migrator().DropColumn(dst, columns[i].Name()) + if DB.Migrator().DropColumn(dst, columns[i].Name()) != nil { + return + } } } } -- 2.49.1 From 98cdbaef90820dcd8e1b8b856ceca983ddd5a705 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Fri, 26 Sep 2025 02:45:23 +0200 Subject: [PATCH 12/14] 1.3.0: ci: update lint params #1 Signed-off-by: GnomeZworc --- .forgejo/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml index a28d932..80cbd6c 100644 --- a/.forgejo/workflows/test.yml +++ b/.forgejo/workflows/test.yml @@ -20,7 +20,7 @@ jobs: uses: https://github.com/golangci/golangci-lint-action@v8 with: version: v2.1 - args: --issues-exit-code 0 --out-format code-climate + args: --issues-exit-code 0 ci-test: runs-on: raw -- 2.49.1 From 1992280022024227f37961361dc6c0956e51d7d4 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Fri, 26 Sep 2025 02:56:16 +0200 Subject: [PATCH 13/14] 1.3.0: code: fix close issue #1 Signed-off-by: GnomeZworc --- internal/databases.go | 2 +- lib/initBiscuit.go | 43 +++++++++++++++++++++++++++++++++++++------ 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/internal/databases.go b/internal/databases.go index aee5bb1..8eb3d96 100644 --- a/internal/databases.go +++ b/internal/databases.go @@ -43,7 +43,7 @@ func Init_database(dsn string) (*gorm.DB, error) { if err != nil { return db, err } - db.AutoMigrate(&Users{}) + _ = db.AutoMigrate(&Users{}) DropUnusedColumns(db, &Users{}) return db, nil diff --git a/lib/initBiscuit.go b/lib/initBiscuit.go index 0853db2..ed74eaf 100644 --- a/lib/initBiscuit.go +++ b/lib/initBiscuit.go @@ -3,6 +3,7 @@ package lib import ( "crypto/ed25519" "crypto/rand" + "fmt" "io" "os" "time" @@ -22,7 +23,12 @@ func InitLoginBiscuit() error { if file, err := os.Create(filePrivateKey); err != nil { return err } else { - defer file.Close() + defer func() { + if cerr := file.Close(); cerr != nil { + // ici tu peux logger ou faire quelque chose + fmt.Printf("Erreur à la fermeture: %v\n", cerr) + } + }() if _, err = io.WriteString(file, string(PrivateKey)); err != nil { return err @@ -34,7 +40,12 @@ func InitLoginBiscuit() error { if file, err := os.Create(filePublicKey); err != nil { return err } else { - defer file.Close() + defer func() { + if cerr := file.Close(); cerr != nil { + // ici tu peux logger ou faire quelque chose + fmt.Printf("Erreur à la fermeture: %v\n", cerr) + } + }() if _, err = io.WriteString(file, string(PublicKey)); err != nil { return err @@ -47,7 +58,12 @@ func InitLoginBiscuit() error { if file, err := os.Open(filePrivateKey); err != nil { return err } else { - defer file.Close() + defer func() { + if cerr := file.Close(); cerr != nil { + // ici tu peux logger ou faire quelque chose + fmt.Printf("Erreur à la fermeture: %v\n", cerr) + } + }() PrivateKey, err = io.ReadAll(file) if err != nil { @@ -57,7 +73,12 @@ func InitLoginBiscuit() error { if file, err := os.Open(filePublicKey); err != nil { return err } else { - defer file.Close() + defer func() { + if cerr := file.Close(); cerr != nil { + // ici tu peux logger ou faire quelque chose + fmt.Printf("Erreur à la fermeture: %v\n", cerr) + } + }() PublicKey, err = io.ReadAll(file) if err != nil { @@ -86,7 +107,12 @@ func InitGlobalBiscuit() error { if file, err := os.Open(filePrivateKey); err != nil { return err } else { - defer file.Close() + defer func() { + if cerr := file.Close(); cerr != nil { + // ici tu peux logger ou faire quelque chose + fmt.Printf("Erreur à la fermeture: %v\n", cerr) + } + }() PrivateKey, err = io.ReadAll(file) if err != nil { @@ -96,7 +122,12 @@ func InitGlobalBiscuit() error { if file, err := os.Open(filePublicKey); err != nil { return err } else { - defer file.Close() + defer func() { + if cerr := file.Close(); cerr != nil { + // ici tu peux logger ou faire quelque chose + fmt.Printf("Erreur à la fermeture: %v\n", cerr) + } + }() PublicKey, err = io.ReadAll(file) if err != nil { -- 2.49.1 From dfce12b15659ecf9d0304d67467d443889e2cc30 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Sat, 27 Sep 2025 22:37:04 +0200 Subject: [PATCH 14/14] 1.3.0: ci: add release ci Signed-off-by: GnomeZworc --- .forgejo/workflows/release.yml | 75 ++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 .forgejo/workflows/release.yml diff --git a/.forgejo/workflows/release.yml b/.forgejo/workflows/release.yml new file mode 100644 index 0000000..4353228 --- /dev/null +++ b/.forgejo/workflows/release.yml @@ -0,0 +1,75 @@ +name: Release Workflow + +on: + push: + tags: + - '*' + branches: + - main + +jobs: + set-release-target: + runs-on: docker + outputs: + release_cible: ${{ steps.setvar.outputs.release_cible }} + steps: + - name: Déterminer la release cible + id: setvar + run: | + if [[ "${GITHUB_REF}" == refs/tags/* ]]; then + TAG="${GITHUB_REF#refs/tags/}" + echo "release_cible=$TAG" >> $GITHUB_OUTPUT + elif [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then + echo "release_cible=latest" >> $GITHUB_OUTPUT + else + echo "release_cible=unknown" >> $GITHUB_OUTPUT + fi + + - name: Afficher la variable + run: echo "Release cible = ${{ steps.setvar.outputs.release_cible }}" + + build: + runs-on: raw + container: + options: --privileged -v /var/run/docker.sock:/var/run/docker.sock + needs: set-release-target + steps: + - name: Check out repository + uses: actions/checkout@v3 + + - name: Install docker-cli + run: | + apt-get update + apt-get install -y ca-certificates curl + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc + chmod a+r /etc/apt/keyrings/docker.asc + + # Add the repository to Apt sources: + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update + apt-get install -y docker-ce-cli + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login docker registry + uses: docker/login-action@v2 + with: + username: ${{ forge.ACTOR }} + password: ${{ secrets.PACKAGE }} + registry: ${{ forge.SERVER_URL }} + + - name: Build and push + uses: docker/build-push-action@v4 + with: + context: . + push: true + tags: git.g3e.fr/h6n/users:${{ needs.set-release-target.outputs.release_cible }} + target: release \ No newline at end of file -- 2.49.1