项目: 自动部署 CI/CD

前提工作

购买linux服务器(建议Centos)
把代码提交到远程仓库

流程

在这里插入图片描述

CI/CD服务有

CI持续集成
CD持续交付

在这里插入图片描述

配置过程

配置github Asscess Token

  1. 生成: https://github.com/settings/tokens (创建token勾选所有与repo相关的,点击generatoe,并复制令牌记得保存到本地text文件中因为只能查看一次)
  2. 配置到项目的Secrets中: (进入远程项目中,然后如下图)
    在这里插入图片描述
realworld的token: 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

配置github执行脚本
在这里插入图片描述
mian.yml配置可以参考这个项目(链接

#在当前仓库下创建这些Secrets,见上面的操作(github Asscess Token)
USERNAME -> root
PORT -> 22
HOST -> 106.75.12.59
PASSWORD -> 密码自己写


在这里插入图片描述

/.github/workflows/main.yml 参考如下

# 不是每一次push都会触发部署,当提交以v开头的标签就会触发自动部署, 如v1.0 v1.1
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 -czvf 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


    # 部署到服务器(scripT下的命令是运行在远程服务器的)
    # 需要准备的是(HOST USERNAME PASSWORD PORT- 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/xiaoqiang007-github/realworld/releses/latest/download/release.tgz -0 release.tgz
          tar zxvf release.tgz
          npm install --production
          pm2 reload pm2.config.json






提交这些新创建的工作流配置文件到远程仓库

git add .
git tag v0.1.0
git push origin v0.1.0

报错

actions/setup-node@master: No such file or directory

 exit code 127.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值