Golang / VScode / gitlab
Menu
Golang を isntall
brew install goTerminalのfull disk access を有効にする
環境変数
zshrc などに設定する
export GOPATH=$HOME/src/go~/.zshrc が変更できないときには
chflags -R nouchg ~/.zshrc
GOPATHは必須。
VSCode
Golang の plugin を入れる
Project を作成する
go を選択
FileWrite というプロジェクトを作る
% mkdir $GOPATH/hello % cd $GOPATH/hello % go mod init example/user/hello % vi hello.go % go install example/user/hello % hellohello.go
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello, World!")
}
先に gitlab に登録する
group OS/2022 の下の e195788-filewrite という名前で Project を作る
mkdir -p ~/src/go/src/gitlab.ie.u-ryukyu.ac.jp/os/2021/kono-filewrite2 cd ~/src/go/src/gitlab.ie.u-ryukyu.ac.jp:os/2021 git clone git@gitlab.ie.u-ryukyu.ac.jp:os/2021/kono-filewrite2.gitで、たぶん、
go mod init gitlab.ie.u-ryukyu.ac.jp/os/2021/kono-filewrite-3これで go.mod ができる
あとから gitlab に登録する
git init
git add
git commit
する。gitlabのprojectを作って
git remote add orign git@gitlab.ie.u-ryukyu.ac.jp:os/2022/kono-go-01.git
git push -uf origin main
とする。
go を走らせる
main.go をそこに作る
package main
import (
"fmt"
"gitlab.ie.u-ryukyu.ac.jp/os/2021/kono-filewrite2/fileWrite"
)
func main() {
fmt.Println("Hello, World!")
fmt.Println( fileWrite.Hello("kono"))
}
fileWrite/fileWrite.go を作る
package fileWrite
import "fmt"
// Hello returns a greeting for the named person.
func Hello(name string) string {
// Return a greeting that embeds the name in a message.
message := fmt.Sprintf("Hi, %v. Welcome!", name)
return message
}
で、
go run main.goする。
IntelJ と VSCode からも動作させる。
gitlab CI/CD
今年は gitlab の CI/CD を使います。Project に .gitlab-ci.yml を以下の内容で追加して、git push します。
image: golang:latest
stages:
- test
- build
- deploy
format:
stage: test
script:
- go fmt $(go list ./... | grep -v /vendor/)
- go vet $(go list ./... | grep -v /vendor/)
- go test -race $(go list ./... | grep -v /vendor/)
compile:
stage: build
script:
- mkdir -p mybinaries
- go build -o mybinaries ./...
artifacts:
paths:
- mybinaries
成功したのと失敗した version の consle のURLを含めて提出します。