首页 > 其他分享 >自动化部署练习 github actions

自动化部署练习 github actions

时间:2023-07-28 21:56:09浏览次数:44  
标签:git name tgz 练习 actions github release

[part3/part3-3/笔记3-自动化部署项目到服务器 · 拉勾教育/高薪常见问题 - 码云 - 开源中国](https://gitee.com/lagoufed/fed-e-questions/tree/master/part3/part3-3/%E7%AC%94%E8%AE%B03-%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2%E9%A1%B9%E7%9B%AE%E5%88%B0%E6%9C%8D%E5%8A%A1%E5%99%A8#6%E7%BC%96%E8%BE%91-workflows-%E8%84%9A%E6%9C%AC)

[自动化部署-04-进行测试_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1RQ4y1o7pW?p=4&spm_id_from=pageDriver&vd_source=2d08172c0cbf0ec3bf5ea0166e0a7f36)

自动化部署练习 github actions

>> 视频讲解 <<

1.下载练习用的代码

https://gitee.com/lagoufed/fed-e-questions/raw/master/part3/realworld-nuxtjs.zip

练习用代码,也可以到课程资料中查找:

part3-3 课堂资料( 03-03-study-materials / code / 3-3-4-1-nuxtjs综合案例 /realworld-nuxtjs )

unzip

2.验证项目代码正常可用

install2

2021-04-21_205449

2021-04-21_205614

3.生成本地仓库

>> 视频讲解 <<

确认有「.gitignore」文件, 并且 push 时会忽略「node_modules」和「.nuxt」目录

2021-04-21_210317

初始化仓库,修改当前分支名称,并生成一个commit提交

2021-04-21_161325

(有同学反馈, 先进行commit, 之后才可以修改分支名称)

git init
git add . && git commit -m "init"
git branch -M main
 

4.创建 github 仓库, 关联本地库

2021-04-21_165315

2021-04-21_165534

2021-04-21_165730

2021-04-21_165846

# 关联远程代码库
git remote add origin https://github.com/你账号/realworld-nuxtjs.git
# 查看关联情况
git remote -v
# 把当前代码先推一波. 证明没问题
git push origin main
 

2021-04-21_170215

5.配置 github actions 信息

>> 视频讲解 <<

2021-04-21_171055

2021-04-21_171148

2021-04-21_174606

2021-04-21_174722

2021-04-21_174808

2021-04-21_175150

2021-04-21_175232

2021-04-21_175358

2021-04-21_175521

2021-04-21_175735

2021-04-21_180044

2021-04-21_180604

2021-04-21_180704

2021-04-21_180748

2021-04-21_180859

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

6.编辑 workflows 脚本

打开项目根目录 .github / workflows / main.yml 文件

2021-04-21_185850

(以下是 main.yml参考内容)

name: Publish And Deploy Demo
on:
  push:
    tags:
      - 'v*'

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:

    # 下载源码
    - name: Checkout
      uses: actions/checkout@master

    # 打包构建
    - name: Build
      uses: actions/setup-node@master
    - run: npm install
    - run: npm run build
    - run: tar -zcvf release.tgz .nuxt static nuxt.config.js package.json package-lock.json pm2.config.json

    # 发布 Release
    - name: Create Release
      id: create_release
      uses: actions/create-release@master
      env:
        GITHUB_TOKEN: ${{ secrets.TOKEN }}
      with:
        tag_name: ${{ github.ref }}
        release_name: Release ${{ github.ref }}
        draft: false
        prerelease: false

    # 上传构建结果到 Release
    - name: Upload Release Asset
      id: upload-release-asset
      uses: actions/upload-release-asset@master
      env:
        GITHUB_TOKEN: ${{ secrets.TOKEN }}
      with:
        upload_url: ${{ steps.create_release.outputs.upload_url }}
        asset_path: ./release.tgz
        asset_name: release.tgz
        asset_content_type: application/x-tgz

    # 部署到服务器
    - name: Deploy
      uses: appleboy/ssh-action@master
      with:
        host: ${{ secrets.HOST }}
        username: ${{ secrets.USERNAME }}
        password: ${{ secrets.PASSWORD }}
        port: ${{ secrets.PORT }}
        script: |
          cd /root/realworld-nuxtjs
          wget https://github.com/2xx/realworld-nuxtjs/releases/latest/download/release.tgz -O release.tgz
          tar zxvf release.tgz
          npm install --production
          pm2 reload pm2.config.json
 

『一定要修改 倒数第4行 仓库地址』

编辑 PM2 配置文件

pm2.config.json (练习中已包含该文件)

{
  "apps": [
    {
      "name": "RealWorld",
      "script": "npm",
      "args": "start"
    }
  ]
}
 

注意:

  • 不要少写 s
  • 少数命令可以不写 run, 多数命令都是 npm run xxxx

7.完成测试

>> 视频讲解 <<

2021-04-21_191223

2021-04-21_203314

git add .
git commit -m "发布部署-测试"
git tag v0.1.0
git tag
git push origin v0.1.0
 

2021-04-21_202734

2021-04-21_202858

2021-04-21_203210

( 打完收工 )

标签:git,name,tgz,练习,actions,github,release
From: https://www.cnblogs.com/ministep/p/17588982.html

相关文章

  • C/C++初学者练习题库(Dev-C++开发环境)
    C/C++初学者练习题库(Dev-C++开发环境)几年前制作的一套C/C++程序题库,其目的是为了使学生在课堂上熟悉掌握C/C++基础知识。程序自带检验和错误反馈功能,并有积分激励机制,当时学校机房电脑只配置了Dev-C++开发环境,所以为了便于学生使用,题库的设计也就以在Dev-C++开发环境上使用......
  • C编程练习-递归
    1.使用递归解决计算第N项斐波那切数列斐波那契数列:F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n ≥2,n ∈N*)1,1,2,3,5,8,13,21,34,55,89...代码:#include<stdio.h>intfunc_f(intn){if(1==n||2==n)return1;returnfunc_f(n-1)+func_f(n-2);}intmain(intarg......
  • 如何在VSCode中配置GitHub GPT代码辅助提示工具
    安装GitHubGPT插件(如果有的话):在VSCode扩展市场中搜索并安装GitHubGPT插件。该插件可能还不存在,如果是这样,你可能需要开发自定义的代码提示插件。在此假设有一个现有的插件可用。安装VSCode:如果你还没有VSCode,首先要安装它。你可以从VSCode的官方网站(http://www.duozitu.com......
  • C编程练习-五子棋升级版(键盘的上下左右键控制落子)
    #include<stdio.h>#include<stdbool.h>#include<stdlib.h>#include<getch.h>charboard[15][15];//棋盘charrole='@';//角色charkey_x,key_y;//下子坐标//初始化棋盘voidinit_board(void){for(inti=0;i<15;i++){for......
  • 《HelloGitHub》第 88 期
    兴趣是最好的老师,HelloGitHub让你对编程感兴趣!简介HelloGitHub分享GitHub上有趣、入门级的开源项目。https://github.com/521xueweihan/HelloGitHub这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言Python、Java、Go、C/C++、Swift.........
  • 23年暑假大一第一周编程练习
    23年暑假大一第一周编程练习1.消失的数字:deffind_missing_number(nums):#计算完整数组的和complete_sum=sum(range(1,len(nums)+2))#range包:[1,7)#print(complete_sum)#1+2+3+4+5+6=21#计算数组中所有数的和array_sum=sum(nums)......
  • github源码python如何运行
    如何运行GitHub上的Python源码项目问题描述GitHub上有很多优秀的Python源码项目,但是对于一些新手来说,如何正确地运行这些项目可能会成为一个问题。因此,本文将提供一份解决方案,以帮助新手顺利地运行GitHub上的Python源码项目。解决方案步骤1:克隆项目首先,在GitHub......
  • 5.3条件测试练习题
      ......
  • 数据结构练习笔记——求解由单链表表示的一元多项式的值
    求解由单链表表示的一元多项式的值【问题描述】一个形如\[a_0x^0+a_1x^1+...+a_nx^n\]的一元多项式含有n+1项,每一项由系数和指数唯一确定,可表示成由系数项和指数项构成的一个二元组(系数,指数),一元多项式则可以表示成二元组的集合{(a0,0),(a1,1),(a2,2)...(an,n)},可看成是数据......
  • 暑假练习1 7.26
    胡乱刷题题号代码1842C代码11838C代码21569C代码31547E代码41551C代码51542B代码6题1思路简单dp,设状态\(f_i\)为前\(i\)个位置最多能删除元素的个数,对于位置\(i\),状态为\(f_i=max(f_{i-1},f_{j-1}+i-j+1),a_j=a_i\),对于一个数\(x\),维护\(m......