-
Notifications
You must be signed in to change notification settings - Fork 0
/
Taskfile.yaml
160 lines (143 loc) · 4.41 KB
/
Taskfile.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
---
version: 3
vars:
PROJECT_NAME:
sh: echo ${PWD##*/}
REPOSITORY_NAME: stuttgart-things
MODULE: github.com/{{ .REPOSITORY_NAME }}/{{ .PROJECT_NAME }}
REGISTRY: eu.gcr.io
GIT_COMMIT:
sh: git log -n 1 --format=%h
VERSION:
sh: git describe --tags --abbrev=0
DATE:
sh: date +"%Y.%m%d.%H%M"
# UPDATED_TAG:
# sh: od_tag=$(git describe --tags --abbrev=0 | cut -d "." -f3); new_tag=$((old_tag+1)); echo $new_tag
# UPDATED_TAG_VERSION:
# sh: t1=$(git describe --tags --abbrev=0 | cut -f1 -d'.'); t2=$(git describe --tags --abbrev=0 | cut -f2 -d'.'); echo $t1.$t2.{{.UPDATED_TAG}}
BRANCH:
sh: if [ $(git rev-parse --abbrev-ref HEAD) != "main" ]; then echo $(git rev-parse --abbrev-ref HEAD) ; fi
COBRA_VERSION: 1.3.0
CMD: version
PARAMETERS: ""
tasks:
run:
desc: Run
deps: [install]
cmds:
- "$GOPATH/bin/machineshop {{ .CMD }} {{ .PARAMETERS }}"
install-cobra:
cmds:
- "go install github.com/spf13/cobra-cli@v{{ .COBRA_VERSION }}"
tests:
desc: Built cli tests
deps:
- build
cmds:
- machineShop render --source local --template tests/template.yaml --defaults tests/default.yaml
build-ko:
desc: Build image w/ KO
deps: [lint, test, commit]
env:
KO_DOCKER_REPO: ghcr.io/{{ .REPOSITORY_NAME }}/{{ .PROJECT_NAME }} #scr.cd43.sthings-pve.labul.sva.de/machineshop
cmds:
- ko build github.com/stuttgart-things/machineshop --push
build:
desc: Build code
deps: [lint, test]
cmds:
- go mod tidy
- go install
install:
desc: Install
deps: [lint, test]
cmds:
- go install -ldflags="-X {{ .MODULE }}/cmd.version={{ .UPDATED_TAG_VERSION }} -X {{ .MODULE }}/cmd.date={{ .DATE }} -X {{ .MODULE }}/cmd.commit={{ .GIT_COMMIT }}"
build-image:
desc: Build container image
deps: [install]
cmds:
- sudo nerdctl build -t {{ .REGISTRY }}/{{ .REPOSITORY_NAME }}/{{ lower (.PROJECT_NAME) }}:{{ .UPDATED_TAG_VERSION }} --build-arg VERSION={{ .UPDATED_TAG_VERSION }} --build-arg BUILD_DATE={{ .DATE }} --build-arg COMMIT={{ .GIT_COMMIT }} .
- sudo nerdctl push {{ .REGISTRY }}/{{ .REPOSITORY_NAME }}/{{ lower (.PROJECT_NAME) }}:{{ .UPDATED_TAG_VERSION }}
add-cmd:
deps: [install-cobra]
cmds:
- |
echo "Enter to be created cli cmd name:"
read CLI_CMD_NAME;
cobra-cli add ${CLI_CMD_NAME}
lint:
desc: Lint
cmds:
- cmd: golangci-lint run
ignore_error: true
test:
desc: Test
cmds:
- go mod tidy
- go test -v
tag:
desc: Commit, push & tag the module
deps: [lint, test]
cmds:
- rm -rf dist
- task: commit
- go mod tidy
- git pull --tags
- git tag -a {{ .TAG }} -m 'updated for stuttgart-things {{ .DATE }} for tag version {{ .TAG }}'
- git push origin --tags
release:
desc: Relase binaries
deps: [tag]
cmds:
- rm -rf ./dist
- goreleaser healthcheck
- goreleaser check
- goreleaser release --skip=publish --snapshot --clean
- goreleaser release --clean
- rm -rf ./dist
branch:
desc: Create branch from main
cmds:
- git checkout main
- git branch
- git pull
- |
echo "Enter to be created (remote) branch:"
read BRANCH_NAME;
git checkout -b ${BRANCH_NAME}
git push origin ${BRANCH_NAME}
- git branch
- git branch --set-upstream-to=origin/main ${BRANCH_NAME}
pr:
desc: Create pull request into main
deps: [lint]
cmds:
- task: commit
- unset GITHUB_TOKEN && gh auth login --hostname GitHub.com -p https --web
- gh pr create -t "{{ .BRANCH }}" -b "{{ .BRANCH }} branch into main"
- sleep 20s
- gh pr checks $(gh pr list | grep "^[^#;]" | awk '{print $1}') --watch
- gh pr merge $(gh pr list | grep "^[^#;]" | awk '{print $1}') --auto --rebase --delete-branch
- git checkout main && git pull
commit:
desc: Commit + push code into branch
cmds:
- git pull
- |
echo "ENTER COMMIT MESSAGE"
read COMMIT_MESSAGE;
git commit -am "$(echo ${COMMIT_MESSAGE})"
git push origin HEAD
delete-branch:
desc: Delete branch from origin
cmds:
- git checkout main
- git branch
- git pull
- |
echo "Enter to be deleted (remote) branch:"
read BRANCH_NAME;
git branch -d ${BRANCH_NAME}
git push origin -d ${BRANCH_NAME}