zoukankan      html  css  js  c++  java
  • 使用 GitHub Actions 部署 .Net 5 程序

    最近尝试了一下 GitHub 提供的自动化工具 Actions,简单实现了一下 CI/CD。

    配置文件需要放在项目对应的目录下:.github/workflows/deploy.yml
    deploy.yml 具体内容如下:

    
    name: Deploy
    
    on: 
      push:
        branches: [ master ]
      pull_request:
        branches: [ master ]
    
    jobs:
      build:
    
        runs-on: ubuntu-latest
    
        steps:
        - uses: actions/checkout@v2
        - name: Setup .NET
          uses: actions/setup-dotnet@v1
          with:
            dotnet-version: 5.0.x
        - name: Dotnet Publish
          run: dotnet publish CdSite -c Release -o deploy
        - name: Copy via ssh
          uses: garygrossgarten/github-action-scp@release
          with:
            local: /home/runner/work/CdSite.NetCore/CdSite.NetCore/deploy/
            remote: ${{ secrets.REMOTE_TARGET }}
            host: ${{ secrets.REMOTE_HOST }}
            username: ${{ secrets.REMOTE_USER }}
            privateKey: ${{ secrets.REMOTE_SSH_KEY }}
        - name: Run SSH command
          uses: garygrossgarten/github-action-ssh@release
          with:
            command: sudo service NAME_OF_YOUR_APP start
            host: ${{ secrets.REMOTE_HOST }}
            username: ${{ secrets.REMOTE_USER }}
            privateKey: ${{ secrets.REMOTE_SSH_KEY }}
    
    

    其中的 REMOTE_TARGET、REMOTE_HOST、REMOTE_USER、REMOTE_SSH_KEY 需要在 GitHub 当前项目的 Settings -> Secrets 中配置,用来保存一些在自动部署中使用但又不方便公开的服务器信息。

    REMOTE_HOST: 服务器地址,可以是 IP 或者域名
    REMOTE_TARGET: 服务器部署的文件路径
    REMOTE_USER: ssh 登录的用户名
    REMOTE_SSH_KEY: ssh 私钥

    这里有一个坑,在配置私钥的时候,习惯性把私钥文件“id_rsa”掐头去尾,只留中间的有效部分,也就是把下面私钥中的第一行和最后一行去掉。

    -----BEGIN RSA PRIVATE KEY-----
    MIIEpQIBAAKCAQEAyH0ha9VDm2a9TZfdb8TSlWwwvJdNkNgRnNerL27zUlcv/wH7
    6gdL12u0Mt3Vx6d4EJjWrHDrUVmmGAQTNt+XtE+tmEjrH3LVojNFkSzmvGBwXXcU
    ...
    lYbYtA0CgYEAgCHSSDmEPHHgSaycqQQYRAz4EL4rgiDkzGZhRg0RrzRfQE//lWqJ
    BKq+LYp3+1dpCoChGGrCoz6W0+eIALb5QkuT+uXrOPb/0ipm79VGCTZJ+CWmT7q8
    mUzhJQg3LTm7fusSKvRRwUhG+vTkLyWNSU2dfFzEHPvZ5CCKEI7f22o=
    -----END RSA PRIVATE KEY-----
    

    但在执行的过程中会出现
    Error: config.privateKey does not exist at given fs path
    的错误。在相关 Issue 中也有许多人遇到这个问题,其实配置完整的私钥就可以了。

  • 相关阅读:
    ADB常用命令
    HttpClient4.x 使用cookie保持会话
    HttpClient发起Http/Https请求工具类
    MakeFile 文件的使用
    SQL连接查询和嵌套查询详解
    Linux中进程控制块PCB-------task_struct结构体结构
    Mysql数据库--语句整理/提升/进阶/高级使用技巧
    进程池分析
    mmap和shm共享内存的区别和联系
    IO多路复用模型之epoll实现机制
  • 原文地址:https://www.cnblogs.com/cdyang/p/github-actions-config.html
Copyright © 2011-2022 走看看