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: make install
35
+ - name : Install Lint
36
+ run : |
37
+ pip install cpplint
38
+ sudo apt install -y clang-tidy clang-format
39
+ cpplint --version
40
+ clang-tidy --version
41
+ clang-format --version
42
+ - name : Run Lint
43
+ run : make lint
44
+ - name : Run Build
45
+ run : make build
46
+ - name : Run Test & Cover
47
+ run : |
48
+ make test-install
49
+ make cover
50
+ - name : Publish Coverage
51
+ uses : codecov/codecov-action@v5
52
+ with :
53
+ token : ${{ secrets.CODECOV_TOKEN }}
54
+ flags : worker
55
+ files : worker/coverage.xml
56
+ publish :
57
+ if : ${{ (github.event_name == 'release' && github.event.action == 'published') || github.ref == 'refs/heads/master' }}
58
+ needs : ci
59
+ name : Publish Docker Image
60
+ runs-on : ubuntu-latest
61
+ defaults :
62
+ run :
63
+ working-directory : ./worker
64
+ steps :
65
+ - name : Git Checkout
66
+ uses : actions/checkout@v4
67
+ - name : Setup QEMU
68
+ uses : docker/setup-qemu-action@v3
69
+ - name : Setup Docker Buildx
70
+ uses : docker/setup-buildx-action@v3
71
+ - name : Login to Docker Hub
72
+ uses : docker/login-action@v3
73
+ with :
74
+ username : ${{ secrets.DOCKER_USER }}
75
+ password : ${{ secrets.DOCKER_PASSWORD }}
76
+ - name : Docker Build and Push
77
+ uses : docker/build-push-action@v6
78
+ with :
79
+ context : worker
80
+ file : ./worker/Dockerfile
81
+ push : true
82
+ platforms : linux/amd64,linux/arm64/v8
83
+ build-args : |
84
+ GITSHA=${{ github.sha }}
85
+ VERSION=${ github.ref_name }}
86
+ tags : smritihq/worker:${{ github.ref_name }}
0 commit comments