Skip to content

Commit 1f1fce2

Browse files
committed
[CI] Add tag release workflow
1 parent 3e427db commit 1f1fce2

1 file changed

Lines changed: 69 additions & 0 deletions

File tree

.github/workflows/tag_release.yml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: Build & Push Docker Image on Tag
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
build:
10+
runs-on: self-hosted
11+
12+
permissions:
13+
contents: read
14+
packages: write
15+
id-token: write
16+
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v4
20+
21+
- name: Log in to GitHub Container Registry
22+
uses: docker/login-action@v3
23+
with:
24+
registry: ghcr.io
25+
username: ${{ github.actor }}
26+
password: ${{ secrets.GITHUB_TOKEN }}
27+
28+
- name: Set Tag Environment
29+
run: |
30+
echo "IMAGE_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
31+
echo "GITHUB_SHA=$GITHUB_SHA" >> $GITHUB_ENV
32+
33+
- name: Pull Cached Image & Set environment
34+
env:
35+
GIT_ACCESS_TOKEN: ${{ secrets.GIT_ACCESS_TOKEN }}
36+
run: |
37+
docker pull ghcr.io/psal-postech/torchsim_base:latest || echo "No cache available"
38+
echo "IMAGE_TAG=torchsim-ci:${GITHUB_SHA}" >> $GITHUB_ENV
39+
echo "GITHUB_SHA=${{github.event.pull_request.head.sha}}" >> $GITHUB_ENV
40+
echo "GITHUB_SHA=${{github.event.pull_request.head.sha}}"
41+
gem5_response_file=/tmp/releases-gem5-latest.json
42+
response=$(curl -sH "Authorization: Bearer ${GIT_ACCESS_TOKEN}" https://api.github.com/repos/PSAL-POSTECH/GEM5/releases/latest > ${gem5_response_file} )
43+
GEM5_ASSET_ID=$(cat ${gem5_response_file} | jq ".assets[0]."id"")
44+
echo "GEM5_ASSET_ID=$GEM5_ASSET_ID"
45+
echo "GEM5_ASSET_ID=$GEM5_ASSET_ID" >> $GITHUB_ENV
46+
47+
llvm_response_file=/tmp/releases-gem5-latest.json
48+
response=$(curl -sH "Authorization: Bearer ${GIT_ACCESS_TOKEN}" https://api.github.com/repos/PSAL-POSTECH/llvm-project/releases/latest > ${llvm_response_file} )
49+
LLVM_ASSET_ID=$(cat ${llvm_response_file} | jq ".assets[0]."id"")
50+
echo "LLVM_ASSET_ID=$LLVM_ASSET_ID"
51+
echo "LLVM_ASSET_ID=$LLVM_ASSET_ID" >> $GITHUB_ENV
52+
53+
mkdir -p /tmp/torchsim-ci/${GITHUB_SHA}
54+
echo "DUMP_PATH=/tmp/torchsim-ci/${GITHUB_SHA}"
55+
56+
- name: Build and Push Docker Image
57+
uses: docker/build-push-action@v4
58+
env:
59+
GIT_ACCESS_TOKEN: ${{ secrets.GIT_ACCESS_TOKEN }}
60+
with:
61+
context: .
62+
file: ./Dockerfile
63+
push: true
64+
build-args: |
65+
GEM5_ASSET_ID=${{ env.GEM5_ASSET_ID }}
66+
LLVM_ASSET_ID=${{ env.LLVM_ASSET_ID }}
67+
GIT_ACCESS_TOKEN=${{ env.GIT_ACCESS_TOKEN }}
68+
TORCHSIM_SHA=${{ env.GITHUB_SHA }}
69+
tags: ghcr.io/psal-postech/${{ env.IMAGE_TAG}}

0 commit comments

Comments
 (0)