Build a golang project using AWS CodeBuild
DevOps has been useful almost required to speed up all stages in life cycle software. Following our path in AWS in this post we are going to review AWS CodeBuild. AWS CodeBuild is a managed service to comp ile, test and package software. Benefits of AWS CodeBuild is that as is managed service it scales well and process multiple builds concurrently. This post we are going to use it to create a pipeline with a golang project.
- Create a simple go server
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", HelloServer)
http.ListenAndServe(":8080", nil)
}
func HelloServer(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:])
}
-
Create a repository in github and upload it. (You can use mine repository golang-codebuild-aws
-
Create CodeBuild project see documentation
At the moment to write this post the unique way to use gitlab is to create CodeBuild project from console web. see documentation
- Create file buildspec.yaml specification
version: 0.2
phases:
install:
runtime-versions:
golang: 1.13
commands:
- go get -u github.com/golang/lint/golint
pre_build:
commands:
- golint -set_exit_status
- go test
build:
commands:
- go build -o app
artifacts:
files:
- app
- buildspec.yml
With this project configuration each change in your repo will trigger the pipeline.