1
+ name : Smriti Worker CI
2
+ on :
3
+ push :
4
+ branches :
5
+ - master
6
+ paths :
7
+ - worker/**
8
+ - .github/workflows/worker.yaml
9
+ pull_request :
10
+ branches :
11
+ - master
12
+ paths :
13
+ - worker/**
14
+ - .github/workflows/worker.yaml
15
+ release :
16
+ types : [published]
17
+ jobs :
18
+ ci :
19
+ name : Integration Check
20
+ runs-on : ubuntu-latest
21
+ defaults :
22
+ run :
23
+ working-directory : ./worker
24
+ steps :
25
+ - name : Git Checkout
26
+ uses : actions/checkout@v4
27
+ - name : Setup cmake
28
+ uses : jwlawson/actions-setup-cmake@v2
29
+ with :
30
+ cmake-version : ' 3.30.x'
31
+ - name : CMake Version
32
+ run : cmake --version
33
+ - name : Install Dependencies
34
+ run : |
35
+ sudo apt install libspdlog-dev
36
+ - name : Install Lint
37
+ run : |
38
+ pip install cpplint
39
+ sudo apt install -y clang-tidy clang-format
40
+ cpplint --version
41
+ clang-tidy --version
42
+ clang-format --version
43
+ - name : Run Lint
44
+ run : make lint
45
+ - name : Run Build
46
+ run : make build
47
+ - name : Run Test & Cover
48
+ run : |
49
+ make test-install
50
+ make cover
51
+ - name : Publish Coverage
52
+ uses : codecov/codecov-action@v5
53
+ with :
54
+ token : ${{ secrets.CODECOV_TOKEN }}
55
+ flags : worker
56
+ files : worker/coverage.xml
57
+ publish :
58
+ if : ${{ (github.event_name == 'release' && github.event.action == 'published') || github.ref == 'refs/heads/master' }}
59
+ needs : ci
60
+ name : Publish Docker Image
61
+ runs-on : ubuntu-latest
62
+ defaults :
63
+ run :
64
+ working-directory : ./worker
65
+ steps :
66
+ - name : Git Checkout
67
+ uses : actions/checkout@v4
68
+ - name : Setup QEMU
69
+ uses : docker/setup-qemu-action@v3
70
+ - name : Setup Docker Buildx
71
+ uses : docker/setup-buildx-action@v3
72
+ - name : Login to Docker Hub
73
+ uses : docker/login-action@v3
74
+ with :
75
+ username : ${{ secrets.DOCKER_USER }}
76
+ password : ${{ secrets.DOCKER_PASSWORD }}
77
+ - name : Docker Build and Push
78
+ uses : docker/build-push-action@v6
79
+ with :
80
+ context : worker
81
+ file : ./worker/Dockerfile
82
+ push : true
83
+ platforms : linux/amd64,linux/arm64/v8
84
+ build-args : |
85
+ GITSHA=${{ github.sha }}
86
+ VERSION=${ github.ref_name }}
87
+ tags : smritihq/worker:${{ github.ref_name }}
0 commit comments