tagprとカスタムGitHub Actions
TIME rest time current/total
TopicsPlaceHolder

tagprとカスタムGitHub Actions

kichijojipm 33

Jun 16th, 2023

Profile

songmu

Profile

songmu

代表的なOSS

Perl

わたしがL(の作者)です

% perl -ML -E 'say String::Random->new->randregex("[0-9a-zA-Z]{12}")'

tagpr (新作)

どういうものか?

これらがGitHub Actionsで自動で行われる

作った動機

効果

喜びの声

GitHub Actions設定

# .github/workflows/tagpr.yml
name: tagpr
on:
  push:
    branches: ["main"]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - uses: Songmu/tagpr@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

tagprのフロー

mainが進む

branch

pull requestのマージとリリース

ブランチの更新による調整

mainの更新に追随

pull requestの内容

カスタムGitHub Actionsの公開

Songmu/tagpr@v1 みたいなやつ

作る方法

これだけ。これで $owner/$repo@main とかで参照できるようになる

Actionの種類

compositeがお手軽で個人的にはオススメ。

compositeをおすすめする理由

Dockerを使う意味はあまりなくなった印象。JavaScript好きな人はJavaScriptで書いても良いと思うがランタイムのアップデートが定期的に必要になることを受け入れる必要がある。

僕がやっている方法

action.yml抜粋

runs:
  using: "composite"
  steps:
  - name: tagpr
    id: tagpr
    run: |
      cd "${GITHUB_WORKSPACE}" || exit 1
      TEMP_PATH="$(mktemp -d)"
      PATH="${TEMP_PATH}:$PATH"
      curl -sfL https://raw.githubusercontent.com/Songmu/tagpr/main/install.sh | sh -s -- -b "$TEMP_PATH" "${{ inputs.version }}" 2>&1
      tagpr
    shell: bash

これだけ。簡単です

余談: $owner/$repo@v1 指定のv1部分

つまり v1 部分はブランチかタグ

僕はタグでやってます。

haya14busa/action-update-semver が便利

- uses: haya14busa/action-update-semver@v1
  with:
    major_version_tag_only: true

v1.2.3 のタグが打たれたときに、 v1タグもforce pushしてくれる

この辺のやり方色々ありそうなので他のやり方あったら教えてください。

以上

宣伝

宣伝2

OSS活動を支援してくれると嬉しいです。