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 中也有许多人遇到这个问题,其实配置完整的私钥就可以了。

  • 相关阅读:
    CentOS 出错处理
    g13 root
    修复误删系统文件
    c++ list sort方法
    批量修改outlook联系人头像,并同步手机
    IT大牛们 学术搜索
    oracle 表空间操作
    CentOS 5.5 安装MPICH2\MRNet\Launchmon时遇到的问题
    自我反省
    积累航程
  • 原文地址:https://www.cnblogs.com/cdyang/p/github-actions-config.html
Copyright © 2011-2022 走看看