@@ -2,7 +2,7 @@ name: dockerize-runtime-exporter
22
33on :
44 workflow_dispatch :
5- pull_request_target :
5+ pull_request :
66 branches : [main]
77 types : [opened, synchronize, reopened]
88 paths :
1111 - " !**/*.md"
1212 - " !services/runtime-exporter/package-lock.json"
1313 push :
14- branches :
15- - main
14+ branches : [main]
1615 paths :
1716 - " services/runtime-exporter/**"
1817 - " .github/workflows/dockerize-runtime-exporter.yml"
@@ -35,35 +34,41 @@ jobs:
3534 - uses : actions/checkout@v3
3635 with :
3736 fetch-depth : 0
38- ref : ${{ github.event.pull_request.head.ref }}
39- repository : ${{ github.event.pull_request.head.repo.full_name }}
37+
38+ - name : Cache node modules
39+ id : cache-node-modules
40+ uses : actions/cache@v3
41+ with :
42+ path : services/runtime-exporter/node_modules
43+ key : ${{ runner.os }}-node-${{ hashFiles('services/runtime-exporter/package-lock.json') }}
4044
4145 - name : Use Node
4246 uses : actions/setup-node@v3
4347 with :
44- node-version : 20 .x
48+ node-version : 18 .x
4549
4650 - name : Install Package
4751 working-directory : services/runtime-exporter
48- run : npm cache clean --force && npm install
52+ if : steps.cache-node-modules.outputs.cache-hit != 'true'
53+ run : npm ci
4954
50- - name : Build Packages
55+ - name : Build runtime-exporter
5156 working-directory : services/runtime-exporter
5257 run : npm run build
5358
54- - name : Docker meta
59+ - name : Docker meta (for push events only)
5560 id : meta
61+ if : github.event_name != 'pull_request'
5662 uses : docker/metadata-action@v4
5763 with :
5864 images : |
59- ghcr.io/${{ github.repository_owner }}/runtime-exporter
60- docker.io/${{ secrets.DOCKER_USERNAME }}/runtime-exporter
65+ ghcr.io/${{ github.repository_owner }}/laf- runtime-exporter
66+ docker.io/${{ secrets.DOCKER_USERNAME }}/laf- runtime-exporter
6167 # https://github.com/docker/metadata-action#typesemver
6268 tags : |
63- type=ref,event=pr
64- type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') && github.event_name != 'pull_request_target' }}
65- type=sha,format=short,enable=${{ github.ref == format('refs/heads/{0}', 'main') && github.event_name != 'pull_request_target' }}
66- type=raw,value={{branch}}-{{sha}},enable=${{ github.ref != format('refs/heads/{0}', 'main') && !startsWith(github.ref, 'refs/tags/') && github.event_name != 'pull_request_target' }}
69+ type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }}
70+ type=sha,format=short,enable=${{ github.ref == format('refs/heads/{0}', 'main') }}
71+ type=raw,value={{branch}}-{{sha}},enable=${{ github.ref != format('refs/heads/{0}', 'main') && !startsWith(github.ref, 'refs/tags/') }}
6772
6873 - name : Set up QEMU
6974 uses : docker/setup-qemu-action@v2
@@ -72,12 +77,14 @@ jobs:
7277 uses : docker/setup-buildx-action@v2
7378
7479 - name : Login to DockerHub
80+ if : github.event_name != 'pull_request'
7581 uses : docker/login-action@v2
7682 with :
7783 username : ${{ secrets.DOCKER_USERNAME }}
7884 password : ${{ secrets.DOCKER_PASSWORD }}
7985
8086 - name : Login to Github Container Hub
87+ if : github.event_name != 'pull_request'
8188 uses : docker/login-action@v2
8289 with :
8390 registry : ghcr.io
@@ -90,27 +97,22 @@ jobs:
9097 with :
9198 context : ./services/runtime-exporter
9299 file : ./services/runtime-exporter/Dockerfile
93- push : true
94- tags : ${{ steps.meta.outputs.tags }}
95- labels : ${{ steps.meta.outputs.labels }}
100+ push : ${{ github.event_name != 'pull_request' }}
101+ tags : ${{ github.event_name != 'pull_request' && steps.meta.outputs.tags || 'laf-runtime-exporter:pr-build' }}
102+ labels : ${{ github.event_name != 'pull_request' && steps.meta.outputs.labels || '' }}
96103 platforms : linux/amd64, linux/arm64
97104
98- - name : Comment docker image tags to PR
99- if : github.event_name == 'pull_request_target'
100- uses : mshick/add-pr-comment@v2
101- with :
102- message-id : " dockerize-runtime-exporter"
103- message : |
104- **:boom: laf runtime exporter image built successfully for pr ${{ github.event.pull_request.number }}**
105- ```
106- ${{ steps.meta.outputs.tags }}
107- ```
108- digest: `${{ steps.docker-build.outputs.digest }}`
105+ - name : PR build summary
106+ if : github.event_name == 'pull_request'
107+ run : |
108+ echo "✅ Docker image built successfully for PR #${{ github.event.pull_request.number }}"
109+ echo "ℹ️ Image not pushed to registry (security measure)"
110+ echo "📋 Build completed at $(date)"
109111
110112 trigger-workflow-build-cluster-image :
111113 needs : [dockerize-runtime-exporter]
114+ if : github.ref == format('refs/heads/{0}', 'main') && github.event_name != 'pull_request'
112115 runs-on : ubuntu-latest
113- if : github.ref == format('refs/heads/{0}', 'main') && github.event_name != 'pull_request_target'
114116 steps :
115117 - name : trigger cluster image workflow
116118 uses : peter-evans/repository-dispatch@v2
0 commit comments