Compare commits

...

2 commits

Author SHA1 Message Date
7f51a7c6ef test docker build in jenkins
Some checks failed
dreamfall/partybot/pipeline/head There was a failure building this commit
2022-11-29 17:58:57 -08:00
18c6290d0f add Dockerfile 2022-11-29 17:26:43 -08:00
3 changed files with 46 additions and 5 deletions

View file

@ -8,4 +8,6 @@ __pycache__/
.git/ .git/
.gitignore .gitignore
Dockerfile Dockerfile
.dockerignore .dockerignore
snap/
Jenkinsfile

28
Dockerfile Normal file
View file

@ -0,0 +1,28 @@
FROM python:3.10-slim-bullseye AS builder
RUN pip install --no-cache-dir --upgrade pip setuptools wheel
WORKDIR /usr/src/app
COPY . .
RUN pip wheel . --wheel-dir /wheels --find-links /wheels
FROM python:3.10-slim-bullseye AS run
COPY --from=builder /wheels /wheels
RUN pip --no-cache-dir install --find-links /wheels --no-index partybot
RUN addgroup -gid 2022 partybot \
&& adduser --home /data --uid 2022 --gid 2022 --disabled-password partybot
USER partybot
VOLUME /data
WORKDIR /data
CMD partybot

19
Jenkinsfile vendored
View file

@ -7,14 +7,26 @@ pipeline {
skipDefaultCheckout(true) skipDefaultCheckout(true)
} }
stages { stages {
stage('Build docker image') {
agent { label 'docker-build' }
steps {
script {
docker.withRegistry('https://git.dreamfall.space', '0e145583-73da-44fa-8117-b8d5352025df') {
def customImage = docker.build('partybot:${env.BUILD_ID}')
customImage.push()
}
}
}
}
stage('Build snap packages') { stage('Build snap packages') {
when { expression { false == true } }
parallel { parallel {
stage('Build snap for ARM64') { stage('Build snap for ARM64') {
agent { label "snap-arm64" } agent { label "snap-arm64" }
steps { steps {
mattermostSend "ARM64 Snap build started - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)" mattermostSend "ARM64 Snap build started - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"
cleanWs() cleanWs()
// sh "rm *.snap || true"
checkout scm checkout scm
sh "snapcraft clean" sh "snapcraft clean"
sh "snapcraft" sh "snapcraft"
@ -23,7 +35,7 @@ pipeline {
success { success {
mattermostSend color: "good", message: "ARM64 Snap build success - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)" mattermostSend color: "good", message: "ARM64 Snap build success - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"
archiveArtifacts artifacts: '*.snap' archiveArtifacts artifacts: '*.snap'
// sh "snapcraft upload --release=edge *.snap" sh "snapcraft upload --release=edge *.snap"
} }
failure { failure {
mattermostSend color: "danger", message: "ARM64 Snap build failure - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)" mattermostSend color: "danger", message: "ARM64 Snap build failure - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"
@ -35,7 +47,6 @@ pipeline {
steps { steps {
mattermostSend "AMD64 Snap build Started - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)" mattermostSend "AMD64 Snap build Started - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"
cleanWs() cleanWs()
// sh "rm *.snap || true"
checkout scm checkout scm
sh "snapcraft clean" sh "snapcraft clean"
sh "snapcraft" sh "snapcraft"
@ -44,7 +55,7 @@ pipeline {
success { success {
mattermostSend color: "good", message: "AMD64 Snap build success - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)" mattermostSend color: "good", message: "AMD64 Snap build success - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"
archiveArtifacts artifacts: '*.snap' archiveArtifacts artifacts: '*.snap'
// sh "snapcraft upload --release=edge *.snap" sh "snapcraft upload --release=edge *.snap"
} }
failure { failure {
mattermostSend color: "danger", message: "AMD64 Snap build failure - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)" mattermostSend color: "danger", message: "AMD64 Snap build failure - ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)"