首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过github操作创建CI/CD Go应用程序

如何通过github操作创建CI/CD Go应用程序
EN

Stack Overflow用户
提问于 2020-12-08 07:07:19
回答 2查看 528关注 0票数 0

我想创建一个作业操作来构建一个Go应用程序,并在digitalocean上部署一个水滴。我正试着用它,但是

代码语言:javascript
复制
name: Countinus Deployments

on:
push:
 branches: [ master ]
pull_request:
branches: [ master ]

build:
runs-on: ubuntu-latest

- name: Checkout the repository
  uses: actions/checkout@v2
- name: Set up Go 1.13
  uses: actions/setup-go@v1
  with: 
    go-version: 1.13
  id: go    

 - name: Deploy and rebuild on server
  uses: appleboy/ssh-action@master
  with:
    host: xxxxxxxxxxx
    username: root
    key: ${{ secrets.serverKey }}
    port: 22
    script: 
      cd go/victorydash/ && 
      git pull origin master && 
      git status && 
      echo $PATH && 
      go build -o app  main.go && 
      systemctl restart goweb.service &&
      systemctl status goweb     

但是代码"go build -o app main.go &&“没有在服务器上构建有人知道什么解决方案吗?

EN

回答 2

Stack Overflow用户

发布于 2020-12-08 09:44:03

不太清楚你想要什么,以及你在YAML文件中写的是什么。我想你需要在数字海洋上部署应用程序。

  1. 构建golang二进制文件-你实际上有对应的actions/setup-go@v1。
  2. 通过SCP在数字海洋水滴上复制文件。例如,带有appleboy/ssh- scp-files
  3. Restart的动作服务已经有了。

如果你想直接在你的主机上构建和部署-你需要手动克隆repo并安装golang。因此,使用操作没有任何意义(仅用于触发)

票数 1
EN

Stack Overflow用户

发布于 2020-12-09 05:07:10

我已经找到了一个解决方案

代码语言:javascript
复制
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout the repository
  uses: actions/checkout@v2

- name: Set up Go 1.13
  uses: actions/setup-go@v1
  with: 
    go-version: 1.13         

- name: Build app 
  run: go build -o app main.go

- name: SCP to Ocean
  uses: appleboy/scp-action@master
  with:
    host: ${{ secrets.host }}
    username: ${{ secrets.user }}
    key: ${{ secrets.serverKey }}
    port: 
    source: "app"         
    target: "dist"    

- name: Deploy and rebuild on server
  uses: appleboy/ssh-action@master
  with:
    host: ${{ secrets.host }}
    username: ${{ secrets.user }}
    key: ${{ secrets.serverKey }}
    port: ${{ secrets.port }}
    script:           
      systemctl restart goweb.service &&
      systemctl status goweb       
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65190755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档