github action 自动化部署asp.net core应用到服务器
- 在自己的仓库里工作流
- 编辑workflow
- 贴上自己的yml脚本
name: ASP.NET Core Deployment on: push: branches: - master # 你可以根据需要更改分支名称 jobs: deploy: runs-on: ubuntu-latest # 使用 Ubuntu 环境 steps: - name: Checkout Repository uses: actions/checkout@v2 - name: Setup .NET Core uses: actions/setup-dotnet@v2 with: dotnet-version: '3.1' # 你可以根据需要更改 .NET Core 版本 - name: Build and Publish run: | dotnet publish -c Release -r linux-x64 -o out - name: Copy Files to Server uses: appleboy/scp-action@master with: host: ${{secrets.HOST}} username: ${{secrets.USERNAME}} password: ${{secrets.PASSWORD}} port: 22 source: "out/" target: "/root/test/deploy" - name: SSH into Server uses: appleboy/ssh-action@v1.0.3 with: host: ${{secrets.HOST}} username: ${{secrets.USERNAME}} password: ${{secrets.PASSWORD}} port: 22 script: | ## 找到dotnet进程并杀死 dotnet_processes=$(ps aux | grep 'dotnet' | grep -v 'grep' | awk '{print $2}') if [ -n "$dotnet_processes" ]; then echo "Found dotnet processes: $dotnet_processes" kill -9 $dotnet_processes echo "Dotnet processes killed." else echo "No dotnet processes found." fi ##进入目标目录启动服务 cd /root/test/deploy/out nohup dotnet ***.dll > app.log 2>&1 &
然后解释一下整个过程
1. 在github的服务器上把代码checkout
2. 在github的服务器上安装.NET Core的SDK(目的是为了下一步编译)
3. 用SDK把代码build到目标目录out
4. 使用scp把out目录复制到自己的服务器上
5. 使用SSH连接服务器到刚解压后的目录,杀死之前的进程并开始新的服务的命令[1][2]
- 提交合并自己的workflow,如果合并到master的话,刚好能触发这个workflow就可以看到执行的过程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了