Github自动化部署

博客 分享
0 134
张三
张三 2023-05-09 15:54:55
悬赏:0 积分 收藏

Github 自动化部署

github action 自动化部署

一、创建github 账户

官方地址
点击进入 注册/登录

二、在项目目录下创建文件

image

.github\workflows固定不变 develop.yml文件名自定义

三、编写配置文件

name: github-action-demo # 工作流名称
on:
  push:
    branches:
      - develop # 生效分支
jobs:
  first-github-job: # 任务名称 自定义
    runs-on: ubuntu-latest # 运行环境
    steps:
      - name: Checkout
        uses: actions/checkout@v3 #复用的 action 会把仓库代码检出到 runner 中。

      - name: Use Node.js
        uses: actions/setup-node@v3 # 设置nodejs版本号
        with:
          node-versions: "14.19.1"

      # 压缩项目
      - name: Build project
        run: zip -vr my-artifact ./**

      # 读取package.json的值
      - name: Read Version
        id: version
        uses: ashley-taylor/read-json-property-action@v1.0
        with:
          path: ./package.json
          property: version

      # 发布 Release
      - name: Create Release
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.TOKEN }}
        with:
          tag_name: v${{steps.version.outputs.value}}
          release_name: v${{steps.version.outputs.value}}
          draft: false
          prerelease: false

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

      # 把文件上传到服务器
      - name: Upload to Deploy Server
        uses: easingthemes/ssh-deploy@main
        env:
          # 私钥
          SSH_PRIVATE_KEY: ${{ secrets.DEPLOY_TOKEN }}
          # 指定当前目录中要上传的内容
          SOURCE: "./**"
          # 指定上传到部署机器的哪个目录下
          TARGET: "/apps/koa-koa"
          # 上传前指令,此处用于清空TARGET下的文件
          ARGS: "-avzr --delete"
          # REMOTE_HOST为机器的公网IP
          REMOTE_HOST: ${{ secrets.HOST }}
          # REMOTE_USER 为登录机器时用到账号名
          REMOTE_USER: ${{secrets.USERNAME}}

          # 排除上传的文件 用,隔开
          EXCLUDE: my-artifact.zip

          SCRIPT_AFTER: |
            whoami
            pwd
            cd /apps/koa-koa
            echo "==="
            export NVM_DIR=~/.nvm
            source ~/.nvm/nvm.sh
            echo $PATH
            node -v
            pwd
            echo $RSYNC_STDOUT
            npm install --production
            pm2 reload koatest.json

变量解释

secrets是定义在github中的变量
image
通过secerts.变量名来取值


steps

image

steps 是github action的关键字
create_release 是上一个步骤的id
outputs.upload_url 是上一个步骤的返回结果


仓库地址:https://github.com/yi-xiaobai/koa-koa

posted @ 2023-05-09 15:42  晚秋时节  阅读(0)  评论(0编辑  收藏  举报
回帖
    张三

    张三 (王者 段位)

    1111 积分 (2)粉丝 (41)源码

     

    温馨提示

    亦奇源码

    最新会员