Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 32m15s
91 lines
2.8 KiB
YAML
91 lines
2.8 KiB
YAML
name: Build and Push Docker Image
|
|
|
|
on:
|
|
push:
|
|
tags: ['v-mineru-*']
|
|
|
|
jobs:
|
|
build-and-push:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: https://mac.alexsun.top:3000/actions/checkout@v4
|
|
|
|
- name: Extract version from tag
|
|
id: set-version
|
|
run: |
|
|
TAG_NAME=${GITHUB_REF#refs/tags/}
|
|
BUILD_VERSION=${TAG_NAME#v-mineru-}
|
|
echo "BUILD_VERSION=$BUILD_VERSION" >> $GITHUB_ENV
|
|
echo "Extracted version: $BUILD_VERSION"
|
|
|
|
- name: Build Docker images
|
|
id: build
|
|
continue-on-error: true
|
|
run: |
|
|
cd mineru
|
|
docker compose build --no-cache
|
|
env:
|
|
BUILD_VERSION: ${{ env.BUILD_VERSION }}
|
|
|
|
- name: Push Docker images
|
|
id: push
|
|
if: steps.build.outcome == 'success'
|
|
continue-on-error: true
|
|
run: |
|
|
cd mineru
|
|
docker compose push
|
|
env:
|
|
BUILD_VERSION: ${{ env.BUILD_VERSION }}
|
|
|
|
- name: Push Docker images
|
|
id: push-latest
|
|
if: steps.build.outcome == 'success'
|
|
continue-on-error: true
|
|
run: |
|
|
cd mineru
|
|
docker compose build
|
|
docker compose push
|
|
env:
|
|
BUILD_VERSION: latest
|
|
|
|
- name: Send success notification to Feishu
|
|
if: steps.push.outcome == 'success'
|
|
uses: https://mac.alexsun.top:3000/actions/webhook-action@master
|
|
with:
|
|
url: ${{ secrets.FEISHU_WEBHOOK }}
|
|
method: POST
|
|
body: |
|
|
{
|
|
"msg_type": "text",
|
|
"content": {
|
|
"text": "镜像 ${{ env.REPO_NAME }}:${{ env.BUILD_VERSION }} 已成功构建并推送!"
|
|
}
|
|
}
|
|
env:
|
|
REPO_NAME: ${{ github.event.repository.name }}
|
|
BUILD_VERSION: ${{ env.BUILD_VERSION }}
|
|
|
|
- name: Send failure notification to Feishu
|
|
if: steps.build.outcome == 'failure' || steps.push.outcome == 'failure' || steps.push-latest.outcome == 'failure'
|
|
uses: https://mac.alexsun.top:3000/actions/webhook-action@master
|
|
with:
|
|
url: ${{ secrets.FEISHU_WEBHOOK }}
|
|
method: POST
|
|
body: |
|
|
{
|
|
"msg_type": "text",
|
|
"content": {
|
|
"text": "镜像 ${{ env.REPO_NAME }}:${{ env.BUILD_VERSION }} 构建或推送失败!"
|
|
}
|
|
}
|
|
env:
|
|
REPO_NAME: ${{ github.event.repository.name }}
|
|
BUILD_VERSION: ${{ env.BUILD_VERSION }}
|
|
|
|
- name: Fail workflow if build or push failed
|
|
if: steps.build.outcome == 'failure' || steps.push.outcome == 'failure' || steps.push-latest.outcome == 'failure'
|
|
run: |
|
|
echo "Build or push step failed. Failing the workflow."
|
|
exit 1
|