Skip to content

Commit b773118

Browse files
committed
chore(taskfile): replace makefiles with taskfile
Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): update workflow Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): add task install Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): make var optional Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): update binaries path .gitignore Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): update workflow Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): refactor taskfile Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): refactor Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): fix format Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): lint Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): fix syntax remove unnecessary var Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): rename tasks Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): update task name Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): rename tasks add desc Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): update workflow update taskfile Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): add missing env add working directory Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): add dir Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): update step Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): add missing step Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): update lint Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): update env Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): try with paths Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): fix Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): remove race Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): fix path Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): try without cover Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): update taskfile Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): remove race Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): add trdl binary Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): add trdl.test binary build Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> test Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> test Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> test Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): add actions Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore: refactor Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): fix workflow Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): refactor taskfile Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): add missing dir Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): update steps Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): return gocoverdir Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): update action Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): add dir Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): update notification Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): rename jobs pin ubuntu version Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): refactor taskfile Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): fix deps Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): fix deps Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): revert trdl binary build for docs Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): refactor format tasks replace deps with cmds Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): add server build task refactor build tasks update docs task Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(trdl, taskfile): update global taskfile add separate taskfiles to projects Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): add client build update docs taskfile Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): update workflows Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): add server binary build update client binary build Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): use cmds instead of deps for lint Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): add ci tasks update workflows Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): add check if links are broken update workflow Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): add tests update other taskfiles Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): fix test workflow pin ubuntu version Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): fix git-signatures install Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): add docker image Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): refactor tests workflow Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): add upload coverage Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): update client binary build Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): add missing env Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): fix dir path Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(release): add release builder image Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(ci): uncomment notification Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): add dist binaries verify update desc in taskfile Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(script): fix path Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore: make script executable disable cgo for server Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(trdl): update release image and commands Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): add defaults and allow overriding template variables Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore(taskfile): update taskfiles Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com> chore: lint Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com>
1 parent 5f76cb5 commit b773118

34 files changed

+1118
-579
lines changed

.github/workflows/docs_cli_and_api_partials_checker.yml

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@ jobs:
1212
name: Partials checker
1313
runs-on: ubuntu-22.04
1414
steps:
15-
- name: Install werf build dependencies
16-
run: sudo apt-get install -y libbtrfs-dev
17-
1815
- name: Checkout code
1916
uses: actions/checkout@v4
2017

@@ -23,14 +20,13 @@ jobs:
2320
with:
2421
go-version-file: server/go.mod
2522

26-
- name: Prepare environment
27-
run: ./e2e/scripts/ci/git.sh
23+
- name: Install Task
24+
uses: arduino/setup-task@v2
25+
with:
26+
repo-token: ${{ secrets.GITHUB_TOKEN }}
2827

28+
- name: Set up git config
29+
run: task ci:setup:git-config
30+
2931
- name: Regen partials
30-
working-directory: docs
31-
run: make
32-
33-
- name: Check
34-
run: |
35-
git add -A
36-
git diff --exit-code HEAD -- || { echo -e "CLI or API partials are outdated!\nRegen it with 'make -C docs' and then commit changes."; exit 1; }
32+
run: task docs:gen

.github/workflows/lint.yaml

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,50 @@
11
name: Lint
22
on:
33
push:
4+
branches: [main]
45
paths:
5-
- "**/*.go"
6+
- "Taskfile.dist.yaml"
7+
- ".github/**"
8+
- "docs/**"
9+
- "client/**"
10+
- "e2e/**"
11+
- "server/**"
12+
pull_request:
13+
repository_dispatch:
14+
types: ["Lint"]
615
workflow_dispatch:
716

817
jobs:
918
lint:
10-
name: Lint
1119
runs-on: ubuntu-22.04
12-
env:
13-
GOFLAGS: -mod=readonly
14-
strategy:
15-
max-parallel: 6
16-
fail-fast: false
17-
matrix:
18-
directory: ["client", "server", "e2e"]
20+
timeout-minutes: 30
1921
steps:
2022
- name: Checkout code
2123
uses: actions/checkout@v4
2224

2325
- name: Set up Go
2426
uses: actions/setup-go@v5
2527
with:
26-
go-version-file: ${{ matrix.directory }}/go.mod
28+
go-version: "1.23"
2729

2830
- name: Install Task
2931
uses: arduino/setup-task@v2
3032
with:
3133
repo-token: ${{ secrets.GITHUB_TOKEN }}
3234

33-
- name: Install prettier
34-
run: task -p deps:install:prettier
35+
- name: Install golangci-lint
36+
run: task -p deps:install:golangci-lint
3537

3638
- name: Lint
37-
run: task -p lint
39+
run: task lint
3840

39-
- name: Install linter
40-
run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.57.1
41-
- name: Lint
42-
working-directory: ${{ matrix.directory }}
43-
run: make lint
41+
notification:
42+
needs:
43+
- lint
44+
name: Notification
45+
if: always()
46+
uses: werf/common-ci/.github/workflows/notification.yml@main
47+
secrets:
48+
loopNotificationGroup: ${{ secrets.LOOP_NOTIFICATION_GROUP }}
49+
webhook: ${{ secrets.LOOP_NOTIFICATION_WEBHOOK }}
50+
notificationChannel: ${{ secrets.LOOP_NOTIFICATION_CHANNEL }}

.github/workflows/tests.yml

Lines changed: 46 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -16,64 +16,50 @@ on:
1616
workflow_dispatch:
1717

1818
jobs:
19-
tests:
19+
unit_server:
2020
name: Tests
21-
strategy:
22-
fail-fast: false
23-
matrix:
24-
directory: [server]
25-
os: [ubuntu-22.04]
26-
runs-on: ${{ matrix.os }}
21+
runs-on: ubuntu-22.04
2722
steps:
2823
- name: Checkout code
2924
uses: actions/checkout@v4
3025

3126
- name: Set up Go
3227
uses: actions/setup-go@v5
3328
with:
34-
go-version-file: ${{ matrix.directory }}/go.mod
29+
go-version-file: server/go.mod
30+
31+
- name: Install Task
32+
uses: arduino/setup-task@v2
33+
with:
34+
repo-token: ${{ secrets.GITHUB_TOKEN }}
3535

3636
- name: Prepare environment
3737
run: |
38-
# coverage directory
39-
export TRDL_TEST_COVERAGE_DIR=$GITHUB_WORKSPACE/tests_coverage/tests/${{ matrix.os }}/${{ matrix.directory }}
40-
mkdir -p $TRDL_TEST_COVERAGE_DIR
41-
echo TRDL_TEST_COVERAGE_DIR=$TRDL_TEST_COVERAGE_DIR >> $GITHUB_ENV
42-
43-
# git user
44-
./e2e/scripts/ci/git.sh
45-
46-
# install gpg
4738
sudo apt-get update
48-
sudo apt-get install gpg
39+
sudo apt-get install -y gpg
4940
50-
# install git-signatures
51-
git clone https://github.com/werf/3p-git-signatures.git
52-
cd 3p-git-signatures
53-
make install
54-
echo "~/.local/bin" >> $GITHUB_PATH
41+
- name: Set up git config
42+
run: task ci:setup:git-config
5543

56-
# install ginkgo
57-
go install github.com/onsi/ginkgo/v2/ginkgo@v2.22.0
58-
shell: bash
44+
- name: Install 3p-git-signatures
45+
run: task ci:install:3p-git-signatures
46+
47+
- name: Install ginkgo
48+
run: task deps:install:ginkgo
5949

6050
- name: Test
61-
working-directory: ${{ matrix.directory }}
62-
run: ginkgo --vet=off --race --keep-going --cover --coverpkg=./... --output-dir=$TRDL_TEST_COVERAGE_DIR ./...
51+
run: |
52+
task server:test:unit
6353
6454
- name: Upload coverage artifact
6555
uses: actions/upload-artifact@v4
6656
with:
67-
name: tests_coverage
57+
name: unit_coverage
6858
path: tests_coverage
6959

7060
e2e_tests:
7161
name: End-to-end tests
72-
strategy:
73-
fail-fast: false
74-
matrix:
75-
os: [ubuntu-22.04]
76-
runs-on: ${{ matrix.os }}
62+
runs-on: ubuntu-22.04
7763
steps:
7864
- name: Checkout code
7965
uses: actions/checkout@v4
@@ -83,38 +69,33 @@ jobs:
8369
with:
8470
go-version-file: e2e/go.mod
8571

86-
- name: Prepare environment
87-
working-directory: e2e
88-
run: |
89-
# coverage directory
90-
export TRDL_TEST_COVERAGE_DIR=$GITHUB_WORKSPACE/tests_coverage/e2e/${{ matrix.os }}
91-
mkdir -p $TRDL_TEST_COVERAGE_DIR
92-
echo TRDL_TEST_COVERAGE_DIR=$TRDL_TEST_COVERAGE_DIR >> $GITHUB_ENV
72+
- name: Install Task
73+
uses: arduino/setup-task@v2
74+
with:
75+
repo-token: ${{ secrets.GITHUB_TOKEN }}
9376

94-
# coverage trdl binary
95-
./scripts/ci/trdl_with_coverage.sh
96-
export TRDL_TEST_BINARY_PATH=$GITHUB_WORKSPACE/e2e/bin/tests/trdl_with_coverage
97-
chmod +x $TRDL_TEST_BINARY_PATH
98-
echo TRDL_TEST_BINARY_PATH=$TRDL_TEST_BINARY_PATH >> $GITHUB_ENV
77+
- name: Set up prebuilt trdl test binary
78+
run: |
79+
task client:build-with-coverage
80+
echo TRDL_TEST_BINARY_PATH=$GITHUB_WORKSPACE/bin/coverage/trdl >> $GITHUB_ENV
81+
echo TRDL_TEST_COVERAGE_DIR=$GITHUB_WORKSPACE/tests_coverage/e2e >> $GITHUB_ENV
9982
100-
# git user
101-
./scripts/ci/git.sh
83+
- name: Set up git config
84+
run: task ci:setup:git-config
10285

103-
# install gpg
86+
- name: Prepare environment
87+
run: |
10488
sudo apt-get update
105-
sudo apt-get install gpg
89+
sudo apt-get install -y gpg
10690
107-
# install git-signatures
108-
git clone https://github.com/werf/3p-git-signatures.git
109-
cd 3p-git-signatures
110-
make install
111-
echo "~/.local/bin" >> $GITHUB_PATH
91+
- name: Install 3p-git-signatures
92+
run: task ci:install:3p-git-signatures
11293

113-
go install github.com/onsi/ginkgo/v2/ginkgo@v2.22.0
94+
- name: Install ginkgo
95+
run: task -p deps:install:ginkgo
11496

11597
- name: Test
116-
working-directory: e2e
117-
run: ginkgo -p --keep-going --cover --coverpkg=../client/...,../server/... --output-dir=$TRDL_TEST_COVERAGE_DIR ./...
98+
run: task e2e:test:e2e
11899

119100
- name: Upload coverage artifact
120101
uses: actions/upload-artifact@v4
@@ -125,7 +106,7 @@ jobs:
125106
upload_coverage:
126107
name: Upload coverage
127108
needs:
128-
- tests
109+
- unit_server
129110
- e2e_tests
130111
runs-on: ubuntu-22.04
131112
steps:
@@ -146,17 +127,11 @@ jobs:
146127
run: |
147128
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
148129
chmod +x ./cc-test-reporter
149-
150130
go install github.com/wadey/gocovmerge@latest
151131
152-
echo TRDL_TEST_COVERAGE_DIR=tests_coverage >> $GITHUB_ENV
153-
154132
- name: Prepare coverage file
155133
run: |
156-
find $TRDL_TEST_COVERAGE_DIR -type f -exec \
157-
sed -i -e "s|/home/ubuntu/actions-runner/_work/werf/trdl|github.com/werf/trdl|g" {} +
158-
159-
coverage_files=$(find $TRDL_TEST_COVERAGE_DIR -type f)
134+
coverage_files=$(find tests_coverage -name '*.out')
160135
gocovmerge ${coverage_files[@]} > coverage.out
161136
162137
- name: Format and upload
@@ -172,11 +147,14 @@ jobs:
172147
./cc-test-reporter upload-coverage
173148
env:
174149
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
175-
150+
176151
notification:
177152
name: Notification
178153
if: always()
179-
needs: upload_coverage
154+
needs:
155+
- unit_server
156+
- e2e_tests
157+
- upload_coverage
180158
uses: werf/common-ci/.github/workflows/notification.yml@main
181159
secrets:
182160
loopNotificationGroup: ${{ secrets.LOOP_NOTIFICATION_GROUP }}
Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
name: Broken links checker
22
on:
33
push:
4+
branches: [main]
45
paths:
56
- docs
7+
schedule:
8+
- cron: "0 8 * * *"
9+
pull_request:
10+
repository_dispatch:
11+
types: [check-broken-links]
612
workflow_dispatch:
713

814
jobs:
915
check_links:
10-
container: jekyll/builder:3
1116
name: Links checker
1217
runs-on: ubuntu-22.04
1318
strategy:
@@ -17,31 +22,26 @@ jobs:
1722
steps:
1823
- name: Checkout code
1924
uses: actions/checkout@v4
25+
26+
- name: Install Task
27+
uses: arduino/setup-task@v2
28+
with:
29+
repo-token: ${{ secrets.GITHUB_TOKEN }}
2030

21-
- name: Prepare environment
22-
working-directory: docs
23-
run: |
24-
mkdir -m 777 .jekyll-cache _site
25-
gem update bundler
26-
bundle install
27-
28-
- name: Build (ru)
31+
- name: Check ru broken links
2932
if: matrix.lang == 'ru'
30-
working-directory: docs
31-
run: bundle exec jekyll build --config _config.yml,_config_ru.yml
33+
run: task docs:check-broken-links
3234

33-
- name: Build (en)
35+
- name: Check en broken links
3436
if: matrix.lang == 'en'
35-
working-directory: docs
36-
run: bundle exec jekyll build --config _config.yml
37+
run: task docs:check-broken-links language=en
3738

38-
- name: Check links
39-
working-directory: docs
40-
run: |
41-
bundle exec htmlproofer \
42-
--allow-hash-href \
43-
--empty-alt-ignore \
44-
--check_html \
45-
--url_ignore "https://fonts.googleapis.com,https://fonts.gstatic.com" \
46-
--http-status-ignore "0" \
47-
_site/
39+
notification:
40+
name: Notification
41+
if: always()
42+
needs: check_links
43+
uses: werf/common-ci/.github/workflows/notification.yml@main
44+
secrets:
45+
loopNotificationGroup: ${{ secrets.LOOP_NOTIFICATION_GROUP }}
46+
webhook: ${{ secrets.LOOP_NOTIFICATION_WEBHOOK }}
47+
notificationChannel: ${{ secrets.LOOP_NOTIFICATION_CHANNEL }}

.gitignore

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,20 @@
1111

1212
# Test binary, built with `go test -c`
1313
*.test
14-
bin/tests
14+
bin/
15+
build/
16+
dist/
1517

1618
# Output of the go coverage tool, specifically when used with LiteIDE
1719
*.out
1820

19-
client/release-build
20-
server/release-build
21+
client/dist
22+
server/dist
2123

2224
.jekyll-cache/
25+
26+
# local dev
27+
_includes
28+
pages_en
29+
.task
30+
tests_coverage/

0 commit comments

Comments
 (0)