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 > 🍏 就能帮你到这了"