次郎の貝塚

技術ブログのような何か | RSS

debian パッケージを作成する GitHub Actions を作った

簡単に debian パッケージを作れる GitHub Actions を作ってみた。

成果物

使い方

上のリポジトリのREADMEに書いてあるとおり。 package_root で指定したパスにコマンドを配置するだけ。 package_root 配下のディレクトリ構造が、そのままインストール先になる。

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 .debpkg/usr/bin
          mkdir -p .debpkg/usr/lib/samplescript
          echo -e "echo sample" > .debpkg/usr/bin/samplescript
          chmod +x .debpkg/usr/bin/samplescript
          echo -e "a=1" > .debpkg/usr/lib/samplescript/samplescript.conf

      - uses: jiro4989/build-deb-action@v2
        with:
          package: samplescript
          package_root: .debpkg
          maintainer: your_name
          version: $ # vX.X.X
          arch: 'amd64'
          desc: 'this is sample package.'

使用例

nimjson という自作のツールで実際に使ってみた。

リリースを publish すると deb をリリースするようなワークフローにしている。 成果物は Releases にアップされる。

ポリシー

簡単に使用できて、使い方がわかりやすいものを目指した。

最初、僕も debian パッケージを作ろうとして、既存の GitHub Actions も探したけれど、いまいち使い方が分からないものばかりだった。 なので、直感的に使えるもので、見れば使い方が分かる、ってくらい単純なものとして build-deb-action を作成した。 ディレクトリ作って、その中に必要な実行可能ファイルを詰め込むだけで良いので、かなり単純。

実行可能ファイル 1 つ配布するだけの deb パッケージであれば、誰でも簡単に使えると思う。 preinst や postinst とかやりたくなったら、ちょっと工夫が必要だけどね。

以上。

前の記事 新卒入社してから 2 年勤めた SIer を退職した | 次の記事 rpm パッケージを作成する GitHub Actions を作った