Skip to content

jiro4989/build-deb-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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

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: