build-deb-action icon indicating copy to clipboard operation
build-deb-action copied to clipboard

build-deb-action builds a simple debian package.

build-deb-action

Test reviewdog release GitHub release (latest SemVer) action-bumpr supported

build-deb-action builds a simple debian package.

See build-rpm-action if you want to create rpm package.

Input

inputs:
  package:
    description: 'Package name of debian package.'
    required: true
  package_root:
    description: 'Directory of release files.'
    required: true
  maintainer:
    description: 'Package maintainer name.'
    required: true
  version:
    description: 'Package version.'
    required: true
  installed_size:
    description: 'Package installed size. GitHub Actions set summarized byte size of `package_root` directory when this parameter is empty.'
    default: ''
    required: false
  depends:
    description: 'Package dependencies.'
    default: 'none'
    required: false
  homepage:
    description: 'Package homepage url.'
    default: 'none'
    required: false
  arch:
    description: 'Package architecture.'
    default: 'amd64'
    required: false
  desc:
    description: 'Package description.'
    default: ''
    required: false
  compress_type:
    description: >
      Set the compression type used when building.
      Allowed types gzip, xz, zstd, none.
      Default is gzip.
    default: 'gzip'
    required: false
  keep_ownership:
    description: >
      If set to true, it creates the package keeping files' owner and group, otherwise they will be assigned to root
      Default is false.
    default: 'false'
    required: false

Output

outputs:
  file_name:
    description: 'File name of resulting .deb file.'

Usage

name: build

on:
  push:
    tags:
      - 'v*.*.*'

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - 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

          # create DEBIAN directory if you want to add other pre/post scripts
          mkdir -p .debpkg/DEBIAN
          echo -e "echo postinst" > .debpkg/DEBIAN/postinst
          chmod +x .debpkg/DEBIAN/postinst
      - uses: jiro4989/build-deb-action@v3
        with:
          package: samplescript
          package_root: .debpkg
          maintainer: your_name
          version: ${{ github.ref }} # refs/tags/v*.*.*
          arch: 'amd64'
          depends: 'libc6 (>= 2.2.1), git'
          desc: 'this is sample package.'
          homepage: 'https://github.com/jiro4989/build-deb-action'

Example projects

Changes

v2 -> v3

  • PR #45 - Makes all files owned by root
    • Changed default file owner to root. Use keep_ownership: true if you want to revert to v2 behavior.

Development

Flow

  1. Create a new branch
  2. Commit
  3. Merge the branch into develop branch
  4. Push develop branch
  5. Check passing all tests
  6. Create a new pull request
  7. Merge the branch into master branch

This actions is using a DockerHub image. We must push docker-v0.0.0 git-tag to create a new tagged docker image. Published a new tagged docker image, and change tag of action.yml into develop branch, and check passing all tests, and merge into master.

Release

haya14busa/action-bumpr

You can bump version on merging Pull Requests with specific labels (bump:major,bump:minor,bump:patch). Pushing tag manually by yourself also work.

haya14busa/action-update-semver

This action updates major/minor release tags on a tag push. e.g. Update v1 and v1.2 tag when released v1.2.3. ref: https://help.github.com/en/articles/about-actions#versioning-your-action

Lint - reviewdog integration

This reviewdog action template itself is integrated with reviewdog to run lints which is useful for Docker container based actions.

reviewdog integration

Supported linters: