name: 部署到开发环境 on: push: branches: - dev env: IMAGE_NAME: ${{ gitea.repository_owner }}/cut.service PROJECT_NAME: Dolphin.ExamPictureCut.HttpApi.Host PUBLISH_PATH: marking.cut.service PUBLISH_HOST: 10.255.255.44 PUBLISH_PORT: 22 ASPNETCORE_ENVIRONMENT: Development jobs: job1: name: 编译发布 runs-on: linux-amd container: image: node:16-bullseye volumes: - /opt/.runner/nuget_packages:/root/.nuget/packages steps: - name: 下载源码 uses: actions/checkout@v3 - name: 编译后端 uses: actions/aspnet@8.0 with: project_name: ${{ env.PROJECT_NAME }} - name: 打包上传镜像 uses: actions/docker@master with: registry: ${{ secrets.DOCKER_REGISTRY }} username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} image: ${{ env.IMAGE_NAME }} context: publish tags: latest,${{ gitea.ref_name }} - name: 生成环境变量文件 env: env_file: | REGISTRY=${{ secrets.DOCKER_REGISTRY }} OWNER=${{ gitea.repository_owner }} TAG=${{ gitea.ref_name }} ASPNETCORE_ENVIRONMENT=${{ env.ASPNETCORE_ENVIRONMENT }} run: | echo "$env_file">.env - name: 复制发布脚本 uses: docker://appleboy/drone-scp with: host: ${{ env.PUBLISH_HOST }} port: ${{ env.PUBLISH_PORT }} username: ${{ secrets.PUBLISH_USER_NAME }} password: ${{ secrets.PUBLISH_PASSWORD }} target: ${{ env.PUBLISH_PATH }} source: docker-compose.yaml,.env - name: 部署到服务器 uses: docker://appleboy/drone-ssh with: host: ${{ env.PUBLISH_HOST }} port: ${{ env.PUBLISH_PORT }} username: ${{ secrets.PUBLISH_USER_NAME }} password: ${{ secrets.PUBLISH_PASSWORD }} script: | cd ${{ env.PUBLISH_PATH }} [ -f .env ] && export $(sed '/^#/d' .env) docker stack deploy -c docker-compose.yaml --with-registry-auth mk - name: 发送构建通知 if: ${{ always() }} uses: actions/webhook@master with: urls: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=fd8e4bfb-a906-4601-9894-e166b3ecedda content_type: application/json template: | { "msgtype": "markdown", "markdown": { "content": "${{ job.status == 'success' && '✅' || '❌' }}**${{ gitea.repository }}** >**构建结果**: ${{ job.status }} >**构建详情**: [点击查看](${{ gitea.server_url }}/${{ gitea.repository }}/actions/runs/${{ gitea.run_number }}) >**代码分支**: ${{ gitea.ref_name }} >**提交标识**: ${{ gitea.sha }} >**提交发起**: ${{ gitea.actor}} " } }