-
Notifications
You must be signed in to change notification settings - Fork 8
/
Taskfile.yml
149 lines (134 loc) · 4.74 KB
/
Taskfile.yml
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
version: '3'
# task install-mkdocs
# task serve-mkdocs
# task publish-mkdocs
# task release
tasks:
# Generate the documentation
# We use [mkdocs](https://www.mkdocs.org/)
install-mkdocs:
cmds:
- pip install mkdocs-material
serve-mkdocs:
cmds:
- mkdocs serve
publish-mkdocs: # on the `main` branch
cmds:
- mkdocs gh-deploy
# Generate a release of the capsule MDK
# Then create the release manually on GitHub
release:
env:
#TAG: "v0.3.4"
#TAG: "v0.3.5"
#TAG: "v0.3.6" # next release
#TAG: "v0.3.7" # next release (this is a pre-release)
#TAG: "v0.3.8"
#TAG: "v0.3.9"
#TAG: "v0.4.0"
#TAG: "v0.4.1"
TAG: "v0.4.2"
cmds:
- echo "📦 Generating release..."
- git add .
- git commit -m "📦 updates HDK for ${TAG}"
- git tag ${TAG}
- git push origin main ${TAG}
remove-tag:
env:
TAG: "v0.4.2"
cmds:
- git tag -d ${TAG}
build-releases:
env:
TAG: "v0.4.2"
cmds:
- |
cd capsule-cli
env CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o capsule-${TAG}-darwin-arm64
env CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o capsule-${TAG}-darwin-amd64
env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o capsule-${TAG}-linux-arm64
env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o capsule-${TAG}-linux-amd64
mv capsule-${TAG}-* ../release
- |
cd capsule-http
env CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o capsule-http-${TAG}-darwin-arm64
env CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o capsule-http-${TAG}-darwin-amd64
env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o capsule-http-${TAG}-linux-arm64
env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o capsule-http-${TAG}-linux-amd64
mv capsule-http-${TAG}-* ../release
- |
cd capsctl
env CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o capsctl-${TAG}-darwin-arm64
env CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o capsctl-${TAG}-darwin-amd64
env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o capsctl-${TAG}-linux-arm64
env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o capsctl-${TAG}-linux-amd64
mv capsctl-${TAG}-* ../release
#replace github.com/bots-garden/capsule-host-sdk => ../../capsule-host-sdk
#replace github.com/bots-garden/capsule-module-sdk => ../../capsule-module-sdk
# Build of capsule-http Docker image
build-push-docker-image:
vars:
IMAGE_BASE_NAME: "capsule-http"
IMAGE_TAG: "0.4.2"
cmds:
- echo "👋 {{.IMAGE_BASE_NAME}}-{{.GOOS}}-{{.GOARCH}}:{{.IMAGE_TAG}}"
- |
cd capsule-http
docker login -u ${DOCKER_USER} -p ${DOCKER_PWD}
docker buildx build --platform {{.GOOS}}/{{.GOARCH}} --push -t ${DOCKER_USER}/{{.IMAGE_BASE_NAME}}-{{.GOOS}}-{{.GOARCH}}:{{.IMAGE_TAG}} .
build-capsule-http-for-docker:
cmds:
- |
echo "📦 Building capsule-http... GOOS={{.GOOS}} GOARCH={{.GOARCH}}"
cd capsule-http
CGO_ENABLED=0 GOOS={{.GOOS}} GOARCH={{.GOARCH}} go build -ldflags="-s -w" -a -installsuffix cgo -o capsule-http .
ls -lh capsule-http
build-docker-capsule-http-image-darwin-arm64:
vars:
GOOS: "darwin"
GOARCH: "arm64"
cmds:
- task: build-capsule-http-for-docker
vars: { GOOS: '{{.GOOS}}', GOARCH: '{{.GOARCH}}' }
- task: build-push-docker-image
vars: {
GOOS: '{{.GOOS}}',
GOARCH: '{{.GOARCH}}'
}
build-docker-capsule-http-image-darwin-amd64:
vars:
GOOS: "darwin"
GOARCH: "amd64"
cmds:
- task: build-capsule-http-for-docker
vars: { GOOS: '{{.GOOS}}', GOARCH: '{{.GOARCH}}' }
- task: build-push-docker-image
vars: {
GOOS: '{{.GOOS}}',
GOARCH: '{{.GOARCH}}'
}
build-docker-capsule-http-image-linux-amd64:
vars:
GOOS: "linux"
GOARCH: "amd64"
cmds:
- task: build-capsule-http-for-docker
vars: { GOOS: '{{.GOOS}}', GOARCH: '{{.GOARCH}}' }
- task: build-push-docker-image
vars: {
GOOS: '{{.GOOS}}',
GOARCH: '{{.GOARCH}}'
}
build-docker-capsule-http-image-linux-arm64:
vars:
GOOS: "linux"
GOARCH: "arm64"
cmds:
- task: build-capsule-http-for-docker
vars: { GOOS: '{{.GOOS}}', GOARCH: '{{.GOARCH}}' }
- task: build-push-docker-image
vars: {
GOOS: '{{.GOOS}}',
GOARCH: '{{.GOARCH}}'
}