zoukankan      html  css  js  c++  java
  • 再探CI,Github调戏Action手记——自动构建并发布到另一仓库

    前言

    接上文初探CI,Github调戏Action手记——自动构建并发布

    在学习了Action的基本操作之后

    接着我们来探索Action其他可能的功能

    众所周知 只有用得到的技术学习的才会最快

    我也是如此

    在完成了当前仓库不同分支的构建发布后,我又有了新的需求 自动构建后发布到不同的仓库

    正文

    我们直接新建一个yml发布文件

    在系统给我们生成的文件中我们可以看到基础语法的介绍

    这里我结合自己的理解标注一下

    在进行解读之前我们先了解一下基本概念

    基本术语

    • workflow (工作流程)
    • job (任务) 一个workflow可以由多个不同的job组成
    • step (步骤) 每个job可以由多个step来组成
    • action(动作) 每个step又可以由多个action来组成

    Action市场

    由于持续集成大家的需求大部分可能都是相同的操作

    所以github建立了一个Action市场

    使得每个人编写的Action脚本都可以被其他人来引用

    这就使得当我这种彩笔小白想要使用这些功能的时候而不用写出很复杂的脚本

    而这整个持续集成的过程也就成为了不同的Action相组合的产物

    使用方法也很简单,只需要使用uses关键字直接引用别人的库即可

    uses userName/repoName

    结合模板

    然后我们来结合系统生成的基础模板来进行基本的解读

    # This is a basic workflow to help you get started with Actions
    
    name: CI  # 构建流程的名称
    
    
    on: #触发该流程的方式
      push:
        branches: [ master ]  #触犯该流程的分支
      pull_request:
        branches: [ master ]
    
    jobs:
      # 该任务当前仅包含了一个任务  名称是build
      build:    
        runs-on: ubuntu-latest #任务锁运行的工作环境
    
        # 该任务所包含的步骤
        steps:
        # 步骤所依赖的操作库 这里引用了官方发布的git操作库 目的是拉取当前库的代码
        - uses: actions/checkout@v2
    
        # 这里是一个单行命令的模板
        - name: Run a one-line script
          run: echo Hello, world!
    
        # 这里是一个多行命令的模板
        - name: Run a multi-line script
          run: |
            echo Add other actions to build,
            echo test, and deploy your project.
    
    

    使用已有的库进行持续集成(当前库构建发布到另外的库)

    到这里我们就可以开始进行自己的Action的组装了

    首先我们先找一个有发布到其他Git库功能的Action

    我们可以在github的市场搜索自己需要的Action

    MFcPRLTway742pE

    这里我使用的是s0/git-publish-subdir-action@master

    点开这个库的主页我们可以在下方看到该库的使用说明

    这里就不在赘述了

    name: AutoBuild
    
    on:
      push:
        branches: [ OneKeyVip-master ]
      pull_request:
        branches: [ OneKeyVip-master ]
    jobs:
      
      build:
        name: build
        runs-on: ubuntu-latest    
        steps:    
        - uses: actions/checkout@v2    
        - name: npm install
          run: |
            npm install
            npm ci
        - name: npm build
          run: |
           npm run build
           cp README.MD ./publish/README.MD
           cp CHANGELOG ./publish/CHANGELOG
    
        - name: publish
          uses: s0/git-publish-subdir-action@master
          env:
            REPO: 目标库
            BRANCH: 目标分支
            FOLDER: 要发布的内容所在的文件夹        
            SSH_PRIVATE_KEY: ${{ secrets.publish }}
    

    结语

    至此我们就完成了从当前库发布到其他的库持续集成的脚本的编写

    剩下的我们就可以不再关心代码的生成与发布了

    可以愉快的码代码了

    GvEprR2w75OY4sX

  • 相关阅读:
    Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) Finished D. Arpa and a list of numbers
    Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) C. Five Dimensional Points
    Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) B. Arpa and an exam about geometry
    Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) A. Arpa and a research in Mexican wave
    hdu 5510
    长沙理工大学第十二届ACM大赛
    Codeforces Round #336 (Div. 2) D. Zuma
    百(垃)度(圾)之星初赛B hdu6114
    百(垃)度(圾)之星初赛B hdu6119
    Codeforces Round #428C
  • 原文地址:https://www.cnblogs.com/ixysy/p/12720134.html
Copyright © 2011-2022 走看看