/
/
/
Top level project for the bag recorder project that adds the frontend and backend together.
1name: CI/CD Pipeline for the bag recorder project
2
3on:
4 push:
5 branches:
6 - main
7
8jobs:
9 build-test-push-frontend:
10 runs-on: ubuntu-latest
11 steps:
12 - name: Checkout repository with submodules
13 uses: actions/checkout@v4
14 with:
15 submodules: recursive
16
17 - name: Set up Docker Buildx
18 uses: docker/setup-buildx-action@v3
19 with:
20 driver: docker
21
22 - name: Login to Harbor Registry
23 uses: docker/login-action@v3
24 with:
25 registry: ${{ secrets.HARBOR_URL }}
26 username: ${{ secrets.HARBOR_USERNAME }}
27 password: ${{ secrets.HARBOR_PASSWORD }}
28
29 - name: Build and push frontend image
30 uses: docker/build-push-action@v5
31 with:
32 context: ./bag_recorder_frontend
33 push: true
34 tags: |
35 ${{ secrets.HARBOR_FRONTEND_IMAGE }}:latest
36 ${{ secrets.HARBOR_FRONTEND_IMAGE }}:${{ github.sha }}
37 cache-from: type=registry,ref=${{ secrets.HARBOR_FRONTEND_IMAGE }}:buildcache
38 cache-to: type=registry,ref=${{ secrets.HARBOR_FRONTEND_IMAGE }}:buildcache,mode=max
39
40 build-test-push-backend:
41 runs-on: ubuntu-latest
42 steps:
43 - name: Checkout repository with submodules
44 uses: actions/checkout@v4
45 with:
46 submodules: recursive
47
48 - name: Set up Docker Buildx
49 uses: docker/setup-buildx-action@v3
50 with:
51 driver: docker
52
53 - name: Login to Harbor Registry
54 uses: docker/login-action@v3
55 with:
56 registry: ${{ secrets.HARBOR_URL }}
57 username: ${{ secrets.HARBOR_USERNAME }}
58 password: ${{ secrets.HARBOR_PASSWORD }}
59
60 - name: Build and push backend image
61 uses: docker/build-push-action@v5
62 with:
63 context: ./bag_recorder_backend
64 push: true
65 tags: |
66 ${{ secrets.HARBOR_BACKEND_IMAGE }}:latest
67 ${{ secrets.HARBOR_BACKEND_IMAGE }}:${{ github.sha }}
68 cache-from: type=registry,ref=${{ secrets.HARBOR_BACKEND_IMAGE }}:buildcache
69 cache-to: type=registry,ref=${{ secrets.HARBOR_BACKEND_IMAGE }}:buildcache,mode=max
70 build-args: |
71 ROS_DISTRO=humble
72