githubaction常用记录

Posted by 梁远鹏 on 2023-05-05 | 阅读 |,阅读约 1 分钟

TOC

前言

记录有用的 github action 知识,欢迎投稿:)

可重用的github action

这个应该是比较常见的,抽离共同的内容到一个 github action,传递参数执行不同的内容,比较常规的是构建特定版本镜像和构建 latest 版本镜像。

主要分为两部分:

被调用方

被调用自然就是重用的 github action,只需要声明是 workflow_call 就可以了,这样就能够被直接应用到 github action 当中,另一个相似的是 workflow_dispatch,能够以 API 的方式调用 github action。

...
on:
  workflow_call:
    inputs:
      tag:
        description: 'image tag'
        required: true
        type: string
    secrets:
      DOCKERHUB_USER_NAME:
        description: 'DOCKERHUB_USER_NAME'
        required: true
      DOCKERHUB_TOKEN:
        description: 'DOCKERHUB_TOKEN'
        required: true
...

上述是一个简单的示例,当被另一个 github action 调用时,必须提供一个 tag 传参 以及 DOCKERHUB_USER_NAME 和 DOCKERHUB_TOKEN 的 secret,用于构建特定版本的镜像以及 push 镜像。

调用方

调用时比较简单,直接使用 uses 关键字就可以了:

...
jobs:
  call_karmada_release_latest:
      uses: {owner}/{repo}/.github/workflows/karmada_release.yaml@main
      with:
        tag: latest
      secrets:
        DOCKERHUB_USER_NAME: ${{ secrets.DOCKERHUB_USER_NAME }}
        DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
...

上述是一个简单的例子,传递 latest 参数并且将需要的 secrets 传递到重用的 github action。

TODO output 以及和可重用 github action 的结合使用。

微信公众号

扫描下面的二维码关注我们的微信公众号,第一时间查看最新内容。同时也可以关注我的Github,看看我都在了解什么技术,在页面底部可以找到我的Github。

wechat-qrcode

温馨提示

本文还在持续创作中,如果你对本文主题感兴趣可以加我微信好友进行催更,博客下方可以找到我的微信联系方式 :)