Skip to content

Commit 478417e

Browse files
committed
tmp
Signed-off-by: AtomicFS <vojtech.vesely@9elements.com>
1 parent ed06826 commit 478417e

1 file changed

Lines changed: 142 additions & 0 deletions

File tree

Taskfile.yml

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
---
22
version: '3'
3+
vars:
4+
GOLANG_CODE_PATH: 'cmds'
35

46
includes:
57
misc:
@@ -10,3 +12,143 @@ includes:
1012
FWCI_PROJECT_NAME: "test-dutctl"
1113
DUTCTL_CONFIG_FILE: "/etc/dutctl.yaml"
1214
SYSTEMD_FILE: "dutagent.service"
15+
16+
tasks:
17+
#==========================
18+
# Compilation and building
19+
#==========================
20+
21+
build:
22+
desc: Build all binaries
23+
cmds:
24+
- task: build:dutctl
25+
- task: build:dutagent
26+
- task: build:dutserver
27+
28+
build:dutctl:
29+
desc: Build dutctl CLI binary
30+
cmds:
31+
- go build -o bin/dutctl ./cmds/dutctl/
32+
env:
33+
CGO_ENABLED: 0
34+
sources:
35+
- ./cmds/dutctl/**/*.go
36+
generates:
37+
- ./bin/dutctl
38+
39+
build:dutagent:
40+
desc: Build dutagent binary
41+
cmds:
42+
- go build -o bin/dutagent ./cmds/dutagent/
43+
env:
44+
CGO_ENABLED: 0
45+
sources:
46+
- ./cmds/dutagent/**/*.go
47+
generates:
48+
- ./bin/dutagent
49+
50+
build:dutserver:
51+
desc: Build dutserver binary
52+
cmds:
53+
- go build -o bin/dutserver ./cmds/exp/dutserver/
54+
env:
55+
CGO_ENABLED: 0
56+
sources:
57+
- ./cmds/exp/dutserver/**/*.go
58+
generates:
59+
- ./bin/dutserver
60+
61+
goreleaser:build:
62+
desc: Use goreleaser to build the project
63+
cmds:
64+
- goreleaser build --auto-snapshot --clean
65+
66+
goreleaser:check:
67+
desc: Checks if goreleaser configuration is valid
68+
cmds:
69+
- goreleaser check
70+
71+
goreleaser:release-test:
72+
desc: Use goreleaser to test release the project
73+
cmds:
74+
- goreleaser release --draft --snapshot --clean
75+
env:
76+
GITHUB_TOKEN: 'dummy'
77+
78+
#========================
79+
# Formatting and linting
80+
#========================
81+
82+
format:
83+
desc: Run gofumt (fork of gofmt, stricter)
84+
cmds:
85+
- gofumpt -w '{{.GOLANG_CODE_PATH}}'
86+
- gofumpt -w 'pkg'
87+
88+
lint:
89+
desc: Run the linters
90+
cmds:
91+
- revive ./...
92+
- go vet ./...
93+
- staticcheck -fail "" ./...
94+
- golangci-lint run --issues-exit-code 0 ./...
95+
96+
#=========
97+
# Testing
98+
#=========
99+
100+
fwci:validate:
101+
desc: Validate FWCI files
102+
cmds:
103+
- fwci validate
104+
105+
fwci:sync:
106+
desc: Synchronize the repository with the CI
107+
cmds:
108+
- yes | fwci sync --force
109+
sources:
110+
- ./.firmwareci/**/*.yaml
111+
- ./.firmwareci/**/Taskfile.yml
112+
- ./Taskfile.yml
113+
114+
fwci:job:
115+
desc: Submit a job
116+
deps:
117+
- fwci:sync
118+
- misc:misc:dummy-binary-for-flashing
119+
vars:
120+
DUTCTL_PATH:
121+
sh: ls ./bin/dutctl_linux_amd64_*/dutctl
122+
FTI_PKG_PATH:
123+
sh: ls ./bin/fti_*_arm64.deb
124+
cmds:
125+
- fwci job --workflow="test-old-fti" "DUTCTL={{.DUTCTL_PATH}}" "REMOTE_PKG={{.FTI_PKG_PATH}}" "CONFIG=./example_configs/test_config.json" "DUMMY_SPI_FLASH_ROM=.firmwareci/dummy_binary.rom" "TASKFILE=.firmwareci/Taskfile.yml"
126+
sources:
127+
- ./.firmwareci/**/*.yaml
128+
- ./.firmwareci/**/Taskfile.yml
129+
- ./Taskfile.yml
130+
- ./bin/*.deb
131+
- ./bin/dutctl_linux_amd64_v1/dutctl
132+
133+
test:
134+
desc: Run tests
135+
env:
136+
LC_ALL: C
137+
vars:
138+
TEST_OPTIONS: '{{default "" .TEST_OPTIONS}}'
139+
SOURCE_FILES: '{{default "./..." .SOURCE_FILES}}'
140+
TEST_PATTERN: '{{default "." .TEST_PATTERN}}'
141+
cmds:
142+
- go test $(go list ./... | grep -v /integration/) {{.TEST_OPTIONS}} -failfast -race -coverpkg=./... -covermode=atomic -coverprofile=coverage.txt {{.SOURCE_FILES}} -run {{.TEST_PATTERN}} -timeout=5m
143+
144+
test:integration:
145+
desc: Setup environment and run integration tests
146+
dir: integration
147+
cmds:
148+
# Setup integration environment
149+
- ./integration.sh
150+
# Spin up docker
151+
- docker-compose up -d remotelab-server
152+
- docker-compose up dutctl
153+
# Shutdown
154+
- docker-compose down

0 commit comments

Comments
 (0)