demo/.gitea/workflows/build.yaml

133 lines
4.4 KiB
YAML
Raw Permalink Normal View History

2024-04-01 11:07:20 -04:00
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
> 🍏 就能帮你到这了"