1+ # update version for each build in this file
2+ name : Docker Image CI
3+
4+ on :
5+ push :
6+ branches : [ "master" ]
7+ pull_request :
8+ branches : [ "master" ]
9+
10+ jobs :
11+
12+ # each job:
13+ # 1. logs in to dockerhub (secrets are configured in github)
14+ # 2. builds the docker image with the tag <registry>/<username>/image:version
15+ # 3. pushes the image with the given tag to dockerhub
16+ build-and-push-producer :
17+
18+ runs-on : ubuntu-latest
19+
20+ steps :
21+ - uses : actions/checkout@v4
22+ - name : Login to dockerhub
23+ run : docker login docker.io -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }}
24+ - name : Build the producer image
25+ run : docker build -f deploy/producer/Dockerfile -t docker.io/${{ secrets.DOCKERHUB_USERNAME }}/producer:1.0.0 .
26+ - name : Push the producer image
27+ run : docker push docker.io/${{ secrets.DOCKERHUB_USERNAME }}/producer:1.0.0
28+
29+ build-and-push-processor :
30+ runs-on : ubuntu-latest
31+
32+ steps :
33+ - uses : actions/checkout@v4
34+ - name : Login to dockerhub
35+ run : docker login docker.io -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }}
36+ - name : Build the processor image
37+ run : docker build -f deploy/processor/Dockerfile -t docker.io/${{ secrets.DOCKERHUB_USERNAME }}/processor:1.0.0 .
38+ - name : Push the processor image
39+ run : docker push docker.io/${{ secrets.DOCKERHUB_USERNAME }}/processor:1.0.0
40+
41+ build-and-push-grpc-server :
42+ runs-on : ubuntu-latest
43+
44+ steps :
45+ - uses : actions/checkout@v4
46+ - name : Login to dockerhub
47+ run : docker login docker.io -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }}
48+ - name : Build the server image
49+ run : docker build -f deploy/server/Dockerfile -t docker.io/${{ secrets.DOCKERHUB_USERNAME }}/grpc-server:1.0.0 .
50+ - name : Push the server image
51+ run : docker push docker.io/${{ secrets.DOCKERHUB_USERNAME }}/grpc-server:1.0.0
52+
53+ build-and-push-grpc-client :
54+ runs-on : ubuntu-latest
55+
56+ steps :
57+ - uses : actions/checkout@v4
58+ - name : Login to dockerhub
59+ run : docker login docker.io -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }}
60+ - name : Build the client image
61+ run : docker build -f deploy/client/Dockerfile -t docker.io/${{ secrets.DOCKERHUB_USERNAME }}/grpc-client:1.0.0 .
62+ - name : Push the client image
63+ run : docker push docker.io/${{ secrets.DOCKERHUB_USERNAME }}/grpc-client:1.0.0
0 commit comments