rpmパッケージを作成するGitHubActionsを作った
GitHubActionsでさっとrpmパッケージを作成してgithub releaseにアップしたくなった
せっかくなので自作した
手動でrpmパッケージを作る手順はrpmパッケージを作る手順を参照
成果物
ソースコード: jiro4989/build-rpm-action: build-rpm-action builds a simple rpm package.
Marketplace: build-rpm-action · Actions · GitHub Marketplace
使い方
上のリポジトリのREADMEに書いてあるとおり
この例ではtestbinというただのシェルスクリプトを/usr/bin/配下にインストールする
package_rootで指定したパスに任意のコマンドを配置すればよい
実行可能バイナリとかを作ってこのパスに配置してactionsを実行するとrpmファイルができあがる
こういう作りにした理由はdebianパッケージを作成するGitHubActionsを作ったと同じような使い勝手にしたかったから
違いはsummaryというパラメータが、こちらのほうが多い
code:ci.yml
name: build
on:
push:
tags:
- 'v*.*.*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set tag
id: vars
run: echo ::set-output name=tag::${GITHUB_REF:10}
- name: create sample script
run: |
mkdir -p .rpmpkg/usr/bin
mkdir -p .rpmpkg/usr/lib/testbin
echo -e "echo hello" > .rpmpkg/usr/bin/testbin
echo -e "echo hello2" > .rpmpkg/usr/bin/testbin2
echo -e "a=1" > .rpmpkg/usr/lib/testbin/testbin.conf
chmod +x .rpmpkg/usr/bin/*
- uses: jiro4989/build-rpm-action@v1
with:
summary: 'testbin is a test script'
package: testbin
package_root: .rpmpkg
maintainer: jiro4989
version: '${{ steps.vars.outputs.tag }}' # vX.X.X
arch: 'x86_64'
desc: 'test package'
使用例
nimjsonという自作のツールで実際に使ってみた
jiro4989/nimjson: nimjson generates nim object definitions from json documents.
リリースをpublishするとrpmをリリースするようなワークフローにしている
コード
https://github.com/jiro4989/nimjson/blob/master/.github/workflows/main.yml#L51-L86
成果物はここにアップされる
https://github.com/jiro4989/nimjson/releases
以上