|
9 | 9 | - "v*" |
10 | 10 | pull_request: |
11 | 11 |
|
| 12 | +env: |
| 13 | + PRIMUS_TURBO_COMMIT: a97e986f01893fec5789243400c7046d18591ba9 # chore: update aiter to fix pybind11 issue (#132) |
| 14 | + |
12 | 15 | jobs: |
13 | 16 | code-lint: |
14 | 17 | runs-on: ubuntu-latest |
@@ -47,20 +50,83 @@ jobs: |
47 | 50 | if: always() |
48 | 51 | with: |
49 | 52 | options: "--check --diff --color --verbose --line-length=110" |
| 53 | + |
| 54 | + build-docker: |
| 55 | + needs: [code-lint] |
| 56 | + runs-on: build-docker |
| 57 | + strategy: |
| 58 | + matrix: |
| 59 | + python-version: ["3.12"] |
| 60 | + steps: |
| 61 | + - run: echo "🎉 Begin Build Primus Docker Image." |
| 62 | + - uses: actions/checkout@v4 |
| 63 | + with: |
| 64 | + submodules: recursive |
| 65 | + - name: Show Environment Info |
| 66 | + run: | |
| 67 | + echo "Hostname: $(hostname)" |
| 68 | + echo "PWD: $(pwd)" |
| 69 | + echo "HOME: $HOME" |
| 70 | + echo "GITHUB_WORKSPACE: $GITHUB_WORKSPACE" |
| 71 | + echo "Runner Temp Dir: $RUNNER_TEMP" |
| 72 | + echo "Runner Tool Cache: $RUNNER_TOOL_CACHE" |
| 73 | + - name: Parse Commit Info |
| 74 | + run: | |
| 75 | + if [[ "${{ github.event_name }}" == "pull_request" ]]; then |
| 76 | + echo "IMAGE_TAG=pr-${{ github.event.pull_request.number }}" >> $GITHUB_ENV |
| 77 | + elif [[ "${{ github.event_name }}" == "push" && "${{ github.ref }}" == "refs/heads/main" ]]; then |
| 78 | + echo "IMAGE_TAG=latest" >> $GITHUB_ENV |
| 79 | + elif [[ "${{ github.event_name }}" == "release" ]]; then |
| 80 | + TAG_NAME="${{ github.ref }}" |
| 81 | + TAG="${TAG_NAME#refs/tags/}" |
| 82 | + echo "IMAGE_TAG=$TAG" >> $GITHUB_ENV |
| 83 | + else |
| 84 | + echo "IMAGE_TAG=others" >> $GITHUB_ENV |
| 85 | + fi |
| 86 | + - name: Build and Push Docker Image |
| 87 | + run: | |
| 88 | + echo "> Login to Docker Hub" |
| 89 | + docker login -u tasimage -p ${{ secrets.PRIMUS_DOCKER_HUB_TOKEN }} |
| 90 | +
|
| 91 | + echo "> Build Docker Image with tag: ${{ env.IMAGE_TAG }}" |
| 92 | + start_time=$(date +%s) |
| 93 | + docker build -f $GITHUB_WORKSPACE/.github/workflows/docker/Dockerfile \ |
| 94 | + -t tasimage/primus:${{env.IMAGE_TAG}} \ |
| 95 | + --build-arg PRIMUS_TURBO_COMMIT=${PRIMUS_TURBO_COMMIT} . |
| 96 | + end_time=$(date +%s) |
| 97 | + elapsed=$((end_time - start_time)) |
| 98 | + echo "⏱️ [build primus docker] Total elapsed time: ${elapsed} seconds" |
| 99 | +
|
| 100 | + echo "> Docker tag image for Docker Hub" |
| 101 | + docker tag tasimage/primus:${{env.IMAGE_TAG}} docker.io/tasimage/primus:${{env.IMAGE_TAG}} |
| 102 | +
|
| 103 | + echo "> Docker push to Docker Hub" |
| 104 | + start_time=$(date +%s) |
| 105 | + docker push docker.io/tasimage/primus:${{env.IMAGE_TAG}} |
| 106 | + end_time=$(date +%s) |
| 107 | + elapsed=$((end_time - start_time)) |
| 108 | + echo "⏱️ [push primus docker] Total elapsed time: ${elapsed} seconds" |
| 109 | +
|
| 110 | + # echo "> Docker cleanup local images" |
| 111 | + # docker rmi tasimage/primus:${{env.IMAGE_TAG}} |
| 112 | + # echo "> build-docker success" |
| 113 | +
|
50 | 114 | run-unittest: |
51 | 115 | env: |
52 | 116 | PRIMUS_WORKDIR: /apps/tas/0_public/primus_k8s_ci |
53 | 117 | needs: [code-lint] |
54 | 118 | runs-on: [tas-k8s] |
55 | 119 | steps: |
56 | 120 | - run: echo "🎉 Begin Primus-Turbo Checkout." |
| 121 | + - name: Set commit hash to env |
| 122 | + run: echo "PRIMUS_TURBO_COMMIT=${PRIMUS_TURBO_COMMIT}" >> $GITHUB_ENV |
57 | 123 | - name: Checkout Repo Primus-Turbo |
58 | 124 | uses: actions/checkout@v4 |
59 | 125 | with: |
60 | 126 | repository: AMD-AIG-AIMA/Primus-Turbo |
61 | 127 | submodules: "recursive" |
62 | 128 | path: Primus-Turbo |
63 | | - ref: a97e986f01893fec5789243400c7046d18591ba9 # chore: update aiter to fix pybind11 issue (#132) |
| 129 | + ref: ${{ env.PRIMUS_TURBO_COMMIT }} |
64 | 130 | - run: echo "Begin Primus-Turbo Install." |
65 | 131 | - name: Install Primus-Turbo |
66 | 132 | run: | |
|
0 commit comments