/
/
/
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
20 - name: Login to Harbor Registry
21 uses: docker/login-action@v3
22 with:
23 registry: ${{ secrets.HARBOR_URL }}
24 username: ${{ secrets.HARBOR_USERNAME }}
25 password: ${{ secrets.HARBOR_PASSWORD }}
26
27 - name: Build and push frontend image
28 uses: docker/build-push-action@v5
29 with:
30 context: ./bag_recorder_frontend
31 push: true
32 tags: |
33 ${{ secrets.HARBOR_FRONTEND_IMAGE }}:latest
34 ${{ secrets.HARBOR_FRONTEND_IMAGE }}:${{ github.sha }}
35 cache-from: type=registry,ref=${{ secrets.HARBOR_FRONTEND_IMAGE }}:buildcache
36 cache-to: type=registry,ref=${{ secrets.HARBOR_FRONTEND_IMAGE }}:buildcache,mode=max
37
38 build-test-push-backend:
39 runs-on: ubuntu-latest
40 steps:
41 - name: Checkout repository with submodules
42 uses: actions/checkout@v4
43 with:
44 submodules: recursive
45
46 - name: Set up Docker Buildx
47 uses: docker/setup-buildx-action@v3
48
49 - name: Login to Harbor Registry
50 uses: docker/login-action@v3
51 with:
52 registry: ${{ secrets.HARBOR_URL }}
53 username: ${{ secrets.HARBOR_USERNAME }}
54 password: ${{ secrets.HARBOR_PASSWORD }}
55
56 - name: Build and push backend image
57 uses: docker/build-push-action@v5
58 with:
59 context: ./bag_recorder_backend
60 push: true
61 tags: |
62 ${{ secrets.HARBOR_BACKEND_IMAGE }}:latest
63 ${{ secrets.HARBOR_BACKEND_IMAGE }}:${{ github.sha }}
64 cache-from: type=registry,ref=${{ secrets.HARBOR_BACKEND_IMAGE }}:buildcache
65 cache-to: type=registry,ref=${{ secrets.HARBOR_BACKEND_IMAGE }}:buildcache,mode=max
66 build-args: |
67 ROS_DISTRO=humble
68