chore: update deploy workflow to run on Debian and add notification step for deployment status
All checks were successful
deploy / build-and-deploy (push) Successful in 58s
All checks were successful
deploy / build-and-deploy (push) Successful in 58s
This commit is contained in:
@@ -7,7 +7,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-deploy:
|
build-and-deploy:
|
||||||
runs-on: self-hosted
|
runs-on: debian
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -57,3 +57,40 @@ jobs:
|
|||||||
tar -C dist -czf - . | \
|
tar -C dist -czf - . | \
|
||||||
sshpass -e ssh -o StrictHostKeyChecking=yes -o ConnectTimeout=15 -p "${{ vars.DEPLOY_SSH_PORT }}" "${{ vars.DEPLOY_SSH_USER }}@${{ vars.DEPLOY_SSH_HOST }}" \
|
sshpass -e ssh -o StrictHostKeyChecking=yes -o ConnectTimeout=15 -p "${{ vars.DEPLOY_SSH_PORT }}" "${{ vars.DEPLOY_SSH_USER }}@${{ vars.DEPLOY_SSH_HOST }}" \
|
||||||
"set -euo pipefail; tmp='${{ vars.DEPLOY_PATH }}.tmp'; rm -rf \"\$tmp\"; mkdir -p \"\$tmp\"; tar -xzf - -C \"\$tmp\"; rm -rf '${{ vars.DEPLOY_PATH }}'; mv \"\$tmp\" '${{ vars.DEPLOY_PATH }}'"
|
"set -euo pipefail; tmp='${{ vars.DEPLOY_PATH }}.tmp'; rm -rf \"\$tmp\"; mkdir -p \"\$tmp\"; tar -xzf - -C \"\$tmp\"; rm -rf '${{ vars.DEPLOY_PATH }}'; mv \"\$tmp\" '${{ vars.DEPLOY_PATH }}'"
|
||||||
|
|
||||||
|
- name: 发送通知
|
||||||
|
if: always()
|
||||||
|
continue-on-error: true
|
||||||
|
env:
|
||||||
|
WEBHOOK_URL: ${{ vars.WEBHOOK_URL }}
|
||||||
|
run: |
|
||||||
|
[ -z "$WEBHOOK_URL" ] && exit 0
|
||||||
|
|
||||||
|
if [ "${{ job.status }}" = "success" ]; then
|
||||||
|
status_text="部署成功 ✅"
|
||||||
|
else
|
||||||
|
status_text="部署失败 ❌"
|
||||||
|
fi
|
||||||
|
|
||||||
|
commit_title=$(git log -1 --pretty=format:"%s" 2>/dev/null || echo "N/A")
|
||||||
|
workflow_url="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_number }}"
|
||||||
|
site_url="${{ vars.SITE_URL }}"
|
||||||
|
|
||||||
|
if [ "${{ job.status }}" = "success" ]; then
|
||||||
|
payload=$(jq -n \
|
||||||
|
--arg title "${{ github.event.repository.name }} ${status_text}" \
|
||||||
|
--arg commit "$commit_title" \
|
||||||
|
--arg author "${{ github.actor }}" \
|
||||||
|
--arg site "$site_url" \
|
||||||
|
--arg url "$workflow_url" \
|
||||||
|
'{msg_type: "text", content: {text: "\($title)\n提交:\($commit)\n作者:\($author)\n站点:\($site)\n详情:\($url)"}}')
|
||||||
|
else
|
||||||
|
payload=$(jq -n \
|
||||||
|
--arg title "${{ github.event.repository.name }} ${status_text}" \
|
||||||
|
--arg commit "$commit_title" \
|
||||||
|
--arg author "${{ github.actor }}" \
|
||||||
|
--arg url "$workflow_url" \
|
||||||
|
'{msg_type: "text", content: {text: "\($title)\n提交:\($commit)\n作者:\($author)\n详情:\($url)"}}')
|
||||||
|
fi
|
||||||
|
|
||||||
|
curl -sS -H "Content-Type: application/json" -X POST -d "$payload" "$WEBHOOK_URL"
|
||||||
|
|||||||
Reference in New Issue
Block a user