This commit is contained in:
hiondal 2025-02-18 01:41:07 +09:00
parent 73a71ff88e
commit 5ccfdc7809

View File

@ -10,14 +10,22 @@ podTemplate(
label: "${PIPELINE_ID}", label: "${PIPELINE_ID}",
serviceAccount: 'jenkins', serviceAccount: 'jenkins',
containers: [ containers: [
containerTemplate(name: 'gradle', image: 'gradle:jdk17', ttyEnabled: true, command: 'cat'), containerTemplate(name: 'gradle',
image: 'gradle:jdk17',
ttyEnabled: true,
command: 'cat',
envVars: [
envVar(key: 'DOCKER_HOST', value: 'unix:///run/podman/podman.sock'),
envVar(key: 'TESTCONTAINERS_RYUK_DISABLED', value: 'true')
]),
containerTemplate(name: 'podman', image: "mgoltzsche/podman", ttyEnabled: true, command: 'cat', privileged: true), containerTemplate(name: 'podman', image: "mgoltzsche/podman", ttyEnabled: true, command: 'cat', privileged: true),
containerTemplate(name: 'azure-cli', image: 'hiondal/azure-kubectl:latest', command: 'cat', ttyEnabled: true), containerTemplate(name: 'azure-cli', image: 'hiondal/azure-kubectl:latest', command: 'cat', ttyEnabled: true),
containerTemplate(name: 'envsubst', image: "hiondal/envsubst", command: 'sleep', args: '1h') containerTemplate(name: 'envsubst', image: "hiondal/envsubst", command: 'sleep', args: '1h')
], ],
volumes: [ volumes: [
emptyDirVolume(mountPath: '/home/gradle/.gradle', memory: false), emptyDirVolume(mountPath: '/home/gradle/.gradle', memory: false),
emptyDirVolume(mountPath: '/root/.azure', memory: false) emptyDirVolume(mountPath: '/root/.azure', memory: false),
emptyDirVolume(mountPath: '/run/podman', memory: false)
] ]
) { ) {
node(PIPELINE_ID) { node(PIPELINE_ID) {
@ -44,17 +52,25 @@ podTemplate(
} }
} }
stage('Initialize Podman') {
container('podman') {
sh '''
podman system service -t 0 unix:///run/podman/podman.sock &
sleep 5
'''
}
}
stage('Setup TestContainers') { stage('Setup TestContainers') {
container('gradle') { container('gradle') {
// 모든 서비스에 대해 testcontainers.properties 생성
sh """ sh """
# 각 서비스의 test/resources 디렉토리 생성
for service in member mysub-infra recommend; do for service in member mysub-infra recommend; do
mkdir -p \${service}/src/test/resources mkdir -p \${service}/src/test/resources
cat << EOF > \${service}/src/test/resources/testcontainers.properties cat << EOF > \${service}/src/test/resources/testcontainers.properties
docker.client.strategy=org.testcontainers.dockerclient.UnixSocketClientProviderStrategy docker.client.strategy=org.testcontainers.dockerclient.UnixSocketClientProviderStrategy
docker.host=unix:///run/podman/podman.sock docker.host=unix:///run/podman/podman.sock
ryuk.container.privileged=true ryuk.container.privileged=true
testcontainers.reuse.enable=true
EOF EOF
done done
""" """
@ -64,6 +80,9 @@ EOF
stage('Build Applications') { stage('Build Applications') {
container('gradle') { container('gradle') {
sh """ sh """
export DOCKER_HOST=unix:///run/podman/podman.sock
export TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=/run/podman/podman.sock
chmod +x gradlew chmod +x gradlew
./gradlew :member:clean :member:build ./gradlew :member:clean :member:build
./gradlew :mysub-infra:clean :mysub-infra:build ./gradlew :mysub-infra:clean :mysub-infra:build