jenkins
This commit is contained in:
parent
f66f96304d
commit
053c9c01bf
37
Jenkinsfile
vendored
Normal file
37
Jenkinsfile
vendored
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#!/usr/bin/env groovy
|
||||||
|
|
||||||
|
// this will start an executor on a Jenkins agent with the docker label
|
||||||
|
node('docker') {
|
||||||
|
// Setup variables
|
||||||
|
// application name will be used in a few places so create a variable and use string interpolation to use it where needed
|
||||||
|
String applicationName = "overflow_service_websocket"
|
||||||
|
// a basic build number so that when we build and push to Artifactory we will not overwrite our previous builds
|
||||||
|
String buildNumber = "0.1.${env.BUILD_NUMBER}"
|
||||||
|
// Path we will mount the project to for the Docker container
|
||||||
|
String goPath = "/go/src/git.loafle.net/overflow/${applicationName}"
|
||||||
|
|
||||||
|
// Checkout the code from Github, stages allow Jenkins to visualize the different sections of your build steps in the UI
|
||||||
|
stage('Checkout from Gitlab') {
|
||||||
|
// No special needs here, if your projects relys on submodules the checkout step would need to be different
|
||||||
|
checkout scm
|
||||||
|
}
|
||||||
|
|
||||||
|
// Start a docker container using the golang:1.8.0-alpine image, mount the current directory to the goPath we specified earlier
|
||||||
|
stage("Create binaries") {
|
||||||
|
docker.image("golang:1.8.0-alpine").inside("-v ${pwd()}:${goPath}") {
|
||||||
|
for (command in binaryBuildCommands) {
|
||||||
|
// build the Mac x64 binary
|
||||||
|
sh "cd ${goPath} && GOOS=darwin GOARCH=amd64 go build -o binaries/amd64/${buildNumber}/darwin/${applicationName}-${buildNumber}.darwin.amd64"
|
||||||
|
// build the Windows x64 binary
|
||||||
|
sh "cd ${goPath} && GOOS=windows GOARCH=amd64 go build -o binaries/amd64/${buildNumber}/windows/${applicationName}-${buildNumber}.windows.amd64.exe"
|
||||||
|
// build the Linux x64 binary
|
||||||
|
sh "cd ${goPath} && GOOS=linux GOARCH=amd64 go build -o binaries/amd64/${buildNumber}/linux/${applicationName}-${buildNumber}.linux.amd64"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage("Archive artifacts") {
|
||||||
|
// Archive the binary files in Jenkins so we can retrieve them later should we need to audit them
|
||||||
|
archiveArtifacts artifacts: 'binaries/**', fingerprint: true
|
||||||
|
}
|
||||||
|
}
|
@ -21,3 +21,5 @@ import:
|
|||||||
version: ^0.3.0
|
version: ^0.3.0
|
||||||
- package: github.com/valyala/fasthttp
|
- package: github.com/valyala/fasthttp
|
||||||
version: ^20160617.0.0
|
version: ^20160617.0.0
|
||||||
|
- package: go.uber.org/zap
|
||||||
|
version: v1.5.0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user