1616 workflow_dispatch :
1717
1818jobs :
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 }}
0 commit comments