From 3929678a4374a6fcaea8367bf93e3d68d3690d9d Mon Sep 17 00:00:00 2001 From: emil28092005 Date: Sun, 18 Jan 2026 00:58:13 +0000 Subject: [PATCH] Try fixing Jenkins. --- Dockerfile | 9 ++++++-- Jenkinsfile | 60 ++++++++++++++++++++++++++++++++++++----------------- 2 files changed, 48 insertions(+), 21 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6a83c93..d5191e2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,15 @@ FROM golang:1.25.5-alpine AS builder RUN apk add --no-cache build-base ca-certificates WORKDIR /app + COPY go.mod go.sum ./ -RUN go mod download +RUN --mount=type=cache,target=/go/pkg/mod \ + go mod download + COPY . . -RUN CGO_ENABLED=1 GOOS=linux go build -a -installsuffix cgo -o shagram ./cmd/server +RUN --mount=type=cache,target=/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build \ + CGO_ENABLED=1 GOOS=linux go build -o shagram ./cmd/server FROM alpine:latest RUN apk add --no-cache ca-certificates sqlite-libs sqlite diff --git a/Jenkinsfile b/Jenkinsfile index a8c00d0..76618ea 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,6 +1,10 @@ pipeline { - agent { label 'docker' } - options { skipDefaultCheckout() } + agent { label 'docker-agent' } + + options { + skipDefaultCheckout(true) + timestamps() + } environment { IMAGE_NAME = "shagram" @@ -11,44 +15,62 @@ pipeline { stages { stage('Checkout') { steps { - script { - deleteDir() + checkout scm - def scmVars = git url: 'https://github.com/emil28092005/shagram.git', branch: 'cicd-fix' - env.IMAGE_TAG = scmVars.GIT_COMMIT.take(7) - } + sh ''' + set -eux + git reset --hard + git clean -xffd + git status --porcelain + ''' } } stage('Build') { steps { - sh 'docker build -t ${IMAGE_NAME}:${IMAGE_TAG} .' + script { + def sha = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() + env.IMAGE_TAG = sha + env.APP_IMAGE = "${IMAGE_NAME}:${sha}" + } + + sh ''' + set -eux + docker version + docker build -t "$APP_IMAGE" . + ''' } } stage('Test') { steps { - sh 'docker run --rm ${IMAGE_NAME}:${IMAGE_TAG} sqlite3 --version' + sh ''' + set -eux + go test ./... + ''' } } stage('Deploy') { steps { sh ''' - set -e - printf "APP_IMAGE=%s\\n" "${IMAGE_NAME}:${IMAGE_TAG}" > "${DEPLOY_DIR}/.env" + set -eux - docker compose \ - --project-directory "${DEPLOY_DIR}" \ - -f "${COMPOSE_FILE}" \ - up -d --build + mkdir -p "$DEPLOY_DIR" + cat > "$DEPLOY_DIR/.env" <