Try fixing Jenkins.
This commit is contained in:
+7
-2
@@ -1,10 +1,15 @@
|
|||||||
FROM golang:1.25.5-alpine AS builder
|
FROM golang:1.25.5-alpine AS builder
|
||||||
RUN apk add --no-cache build-base ca-certificates
|
RUN apk add --no-cache build-base ca-certificates
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY go.mod go.sum ./
|
COPY go.mod go.sum ./
|
||||||
RUN go mod download
|
RUN --mount=type=cache,target=/go/pkg/mod \
|
||||||
|
go mod download
|
||||||
|
|
||||||
COPY . .
|
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
|
FROM alpine:latest
|
||||||
RUN apk add --no-cache ca-certificates sqlite-libs sqlite
|
RUN apk add --no-cache ca-certificates sqlite-libs sqlite
|
||||||
|
|||||||
Vendored
+41
-19
@@ -1,6 +1,10 @@
|
|||||||
pipeline {
|
pipeline {
|
||||||
agent { label 'docker' }
|
agent { label 'docker-agent' }
|
||||||
options { skipDefaultCheckout() }
|
|
||||||
|
options {
|
||||||
|
skipDefaultCheckout(true)
|
||||||
|
timestamps()
|
||||||
|
}
|
||||||
|
|
||||||
environment {
|
environment {
|
||||||
IMAGE_NAME = "shagram"
|
IMAGE_NAME = "shagram"
|
||||||
@@ -11,44 +15,62 @@ pipeline {
|
|||||||
stages {
|
stages {
|
||||||
stage('Checkout') {
|
stage('Checkout') {
|
||||||
steps {
|
steps {
|
||||||
script {
|
checkout scm
|
||||||
deleteDir()
|
|
||||||
|
|
||||||
def scmVars = git url: 'https://github.com/emil28092005/shagram.git', branch: 'cicd-fix'
|
sh '''
|
||||||
env.IMAGE_TAG = scmVars.GIT_COMMIT.take(7)
|
set -eux
|
||||||
}
|
git reset --hard
|
||||||
|
git clean -xffd
|
||||||
|
git status --porcelain
|
||||||
|
'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Build') {
|
stage('Build') {
|
||||||
steps {
|
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') {
|
stage('Test') {
|
||||||
steps {
|
steps {
|
||||||
sh 'docker run --rm ${IMAGE_NAME}:${IMAGE_TAG} sqlite3 --version'
|
sh '''
|
||||||
|
set -eux
|
||||||
|
go test ./...
|
||||||
|
'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Deploy') {
|
stage('Deploy') {
|
||||||
steps {
|
steps {
|
||||||
sh '''
|
sh '''
|
||||||
set -e
|
set -eux
|
||||||
printf "APP_IMAGE=%s\\n" "${IMAGE_NAME}:${IMAGE_TAG}" > "${DEPLOY_DIR}/.env"
|
|
||||||
|
|
||||||
docker compose \
|
mkdir -p "$DEPLOY_DIR"
|
||||||
--project-directory "${DEPLOY_DIR}" \
|
cat > "$DEPLOY_DIR/.env" <<EOF
|
||||||
-f "${COMPOSE_FILE}" \
|
APP_IMAGE=$APP_IMAGE
|
||||||
up -d --build
|
EOF
|
||||||
|
|
||||||
docker compose \
|
docker compose -f "$COMPOSE_FILE" --project-directory "$DEPLOY_DIR" up -d --remove-orphans
|
||||||
--project-directory "${DEPLOY_DIR}" \
|
docker compose -f "$COMPOSE_FILE" --project-directory "$DEPLOY_DIR" ps
|
||||||
-f "${COMPOSE_FILE}" \
|
|
||||||
ps
|
|
||||||
'''
|
'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
always {
|
||||||
|
echo "Done"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user