11name : CI on VM with Docker Execution
2+
23on :
34 workflow_dispatch :
45 push :
910 runs-on : self-hosted
1011 container :
1112 image : registry.dev.nudgebee.pollux.in/profiler-vm:latest
12-
13+
1314 steps :
1415 - name : Checkout code
1516 uses : actions/checkout@v4
1617
17- - name : Install dependencies
18- run : |
19- apt-get update && apt-get install -y \
20- curl \
21- git \
22- unzip \
23- python3 \
24- python3-pip \
25- docker.io \
26- awscli \
27- && rm -rf /var/lib/apt/lists/*
28-
2918 - name : Create tag name
30- run : echo "tag=$(date +'%Y-%m-%dT%H-%M-%S')_$GITHUB_SHA" >> $GITHUB_ENV
19+ run : echo "tag=$(date +'%Y-%m-%dT%H-%M-%S')_${ GITHUB_SHA} " >> $GITHUB_ENV
3120
3221 - name : Configure AWS Credentials
3322 uses : aws-actions/configure-aws-credentials@v1
@@ -38,24 +27,28 @@ jobs:
3827
3928 - name : Login to Amazon ECR
4029 run : |
41- aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 864186153326.dkr.ecr.us-east-1.amazonaws.com
30+ aws ecr get-login-password --region us-east-1 | docker login \
31+ --username AWS --password-stdin 864186153326.dkr.ecr.us-east-1.amazonaws.com
4232
43- - name : Build and Push JVM Alpine Agent Image
44- run : |
45- docker build -t 864186153326.dkr.ecr.us-east-1.amazonaws.com/nudgebee-profiler-jvm:${{ env.tag }} -f docker/jvm/alpine/Dockerfile .
46- docker push 864186153326.dkr.ecr.us-east-1.amazonaws.com/nudgebee-profiler-jvm:${{ env.tag }}
33+ - name : Setup Buildx
34+ uses : docker/setup-buildx-action@v3
4735
48- - name : Build and Push BPF Agent Image
49- run : |
50- docker build -t 864186153326.dkr.ecr.us-east-1.amazonaws.com/nudgebee-profiler-bpf:${{ env.tag }} -f docker/bpf/Dockerfile .
51- docker push 864186153326.dkr.ecr.us-east-1.amazonaws.com/nudgebee-profiler-bpf:${{ env.tag }}
52-
53- - name : Build and Push Python Agent Image
54- run : |
55- docker build -t 864186153326.dkr.ecr.us-east-1.amazonaws.com/nudgebee-profiler-python:${{ env.tag }} -f docker/python/Dockerfile .
56- docker push 864186153326.dkr.ecr.us-east-1.amazonaws.com/nudgebee-profiler-python:${{ env.tag }}
36+ - name : Cache Docker layers
37+ uses : actions/cache@v4
38+ with :
39+ path : /tmp/.buildx-cache
40+ key : ${{ runner.os }}-buildx-${{ github.sha }}
41+ restore-keys : |
42+ ${{ runner.os }}-buildx-
5743
58- - name : Build and Push Perf Agent Image
44+ - name : Build and Push Images in Parallel
5945 run : |
60- docker build -t 864186153326.dkr.ecr.us-east-1.amazonaws.com/nudgebee-profiler-perf:${{ env.tag }} -f docker/perf/Dockerfile .
61- docker push 864186153326.dkr.ecr.us-east-1.amazonaws.com/nudgebee-profiler-perf:${{ env.tag }}
46+ set -e
47+ TAG=${{ env.tag }}
48+ REPO=864186153326.dkr.ecr.us-east-1.amazonaws.com/nudgebee-profiler
49+
50+ parallel --jobs 4 ::: \
51+ "docker buildx build -t $REPO-jvm:$TAG -f docker/jvm/alpine/Dockerfile --push ." \
52+ "docker buildx build -t $REPO-bpf:$TAG -f docker/bpf/Dockerfile --push ." \
53+ "docker buildx build -t $REPO-python:$TAG -f docker/python/Dockerfile --push ." \
54+ "docker buildx build -t $REPO-perf:$TAG -f docker/perf/Dockerfile --push ."
0 commit comments