133 lines
4.4 KiB
YAML
133 lines
4.4 KiB
YAML
|
name: CI
|
||
|
run-name: ${{ github.actor }} Gitea Actions 🚀🚀🚀
|
||
|
on:
|
||
|
push:
|
||
|
# Sequence of patterns matched against refs/heads
|
||
|
# branches:
|
||
|
# - main
|
||
|
# Sequence of patterns matched against refs/tags
|
||
|
tags:
|
||
|
- v*
|
||
|
|
||
|
env:
|
||
|
# DOCKER_REGISTRY: docker.io
|
||
|
# DOCKER_USERNAME: softyouling
|
||
|
# 此处可修改为你任意 docker 镜像仓库地址和用户名
|
||
|
DOMAIN: gitea.lntu.edu.cn
|
||
|
IMAGE_NAME: ${{ github.repository }}
|
||
|
GITOPS_URL: ${{ env.DOMAIN }}/${{ secrets.GITOPS_REPO }}
|
||
|
|
||
|
jobs:
|
||
|
build:
|
||
|
runs-on: ubuntu-latest
|
||
|
# container: catthehacker/ubuntu:act-latest
|
||
|
steps:
|
||
|
# - name: 环境检测
|
||
|
# run: |
|
||
|
# which node
|
||
|
# node --version
|
||
|
# which npm
|
||
|
# npm --version
|
||
|
# which docker
|
||
|
# docker info
|
||
|
# echo ${{ github.token }}
|
||
|
# echo ${{ env.GITOPS_URL }}
|
||
|
|
||
|
- name: 拉取代码
|
||
|
uses: https://${{ env.DOMAIN }}/actions/checkout@v4
|
||
|
|
||
|
- name: 安装依赖,构建
|
||
|
run: |
|
||
|
npm config set registry https://registry.npmmirror.com
|
||
|
npm i
|
||
|
npm run build
|
||
|
|
||
|
# Docker配置多平台环境
|
||
|
- name: Docker配置多平台环境
|
||
|
uses: https://${{ env.DOMAIN }}/actions/setup-buildx-action@v3
|
||
|
|
||
|
# - name: 修改镜像信息
|
||
|
# id: meta
|
||
|
# # uses: docker/metadata-action@v4
|
||
|
# # GITHUB_OUTPUT 在流水线中传递的变量
|
||
|
# run: |
|
||
|
# echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}') >> $GITHUB_OUTPUT
|
||
|
# echo REPO_VERSION=$(echo ${{ github.ref }} | awk -F"/" '{print $3}') >> $GITHUB_OUTPUT
|
||
|
# 需要v1.0.0的形式的时候使用
|
||
|
|
||
|
- name: 构建 & 推送镜像
|
||
|
uses: https://${{ env.DOMAIN }}/actions/docker-build-push@v6
|
||
|
with:
|
||
|
image: ${{ env.IMAGE_NAME }}
|
||
|
tags: ${{ github.sha }}
|
||
|
registry: ${{ env.DOMAIN }}
|
||
|
dockerfile: Dockerfile
|
||
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||
|
# platforms: |
|
||
|
# linux/amd64
|
||
|
# linux/arm64
|
||
|
# tags: ${{ env.DOMAIN }}/${{env.IMAGE_NAME}}:${{ steps.meta.outputs.REPO_VERSION }}
|
||
|
|
||
|
gtiops:
|
||
|
runs-on: ubuntu-latest
|
||
|
if: ${{ success() }}
|
||
|
needs: [build]
|
||
|
|
||
|
steps:
|
||
|
- name: 🐬更新应用镜像
|
||
|
uses: https://${{ env.DOMAIN }}/actions/gitops_actions@main
|
||
|
with:
|
||
|
gitops-token: ${{ secrets.GITOPS_TOKEN }}
|
||
|
gitops-url: ${{ env.GITOPS_URL }}
|
||
|
commit-email: "gitops@lntu.edu.cn"
|
||
|
commit-name: "千里走单骑"
|
||
|
file-name: ${{ secrets.FILE_NAME }}
|
||
|
images-value: ${{ env.DOMAIN }}/${{ github.repository }}:${{ github.sha }}
|
||
|
image-tag: ${{ github.sha }}
|
||
|
|
||
|
# - name: 🚀更新应用镜像
|
||
|
# run: |
|
||
|
# git config --global user.email "gitops@lntu.edu.cn"
|
||
|
# git config --global user.name "千里走单骑"
|
||
|
# git config --global init.defaultBranch main
|
||
|
# mkdir repo
|
||
|
# cd repo
|
||
|
# git init
|
||
|
# git remote add origin https://${{ secrets.GITOPS_TOKEN }}@${{ env.GITOPS_URL }}
|
||
|
# git config core.sparsecheckout true
|
||
|
# echo ${{ secrets.FILE_NAME }} >> .git/info/sparse-checkout
|
||
|
# git pull origin main
|
||
|
# ls -l
|
||
|
# sed -i "s#${{ env.DOMAIN }}.*#${{ env.DOMAIN }}/${{ env.IMAGE_NAME }}:${{ github.sha }}#g" ${{ secrets.FILE_NAME }}
|
||
|
# cat ${{secrets.FILE_NAME}}
|
||
|
# if ! git diff-index --quiet HEAD --; then
|
||
|
# git add ${{secrets.FILE_NAME}}
|
||
|
# git status
|
||
|
# git commit -m "🐬 tags: "${{ github.sha }}" "
|
||
|
# git push
|
||
|
# else
|
||
|
# echo "no changes, git repository is up to date"
|
||
|
# fi
|
||
|
|
||
|
微信通知:
|
||
|
runs-on: ubuntu-latest
|
||
|
if: ${{success()}}
|
||
|
needs: [build, gtiops]
|
||
|
|
||
|
steps:
|
||
|
# 发送通知
|
||
|
- name: 微信通知
|
||
|
uses:
|
||
|
https://${{ env.DOMAIN }}/actions/action-wechat-work@master
|
||
|
# 若没有配置机器人WebHook则跳过
|
||
|
if: ${{ secrets.WECHAT_WORK_BOT_WEBHOOK != '' }}
|
||
|
env:
|
||
|
WECHAT_WORK_BOT_WEBHOOK: ${{ secrets.WECHAT_WORK_BOT_WEBHOOK }}
|
||
|
with:
|
||
|
msgtype: markdown
|
||
|
content: "✅ 应用版本更新成功\n
|
||
|
> 🐬 镜像:\n
|
||
|
> ${{ env.DOMAIN }}/${{ env.IMAGE_NAME }}:${{ github.sha}}\n
|
||
|
> 🍏 就能帮你到这了"
|