build-deb-action
builds a simple debian package.
See build-rpm-action if you want to create rpm
package.
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: ''
required: false
homepage:
description: 'Package homepage url.'
default: ''
required: false
section:
description: 'Package section.'
default: ''
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
outputs:
file_name:
description: 'File name of resulting .deb file.'
name: build
on:
push:
tags:
- 'v*.*.*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- 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@v4
with:
package: samplescript
package_root: .debpkg
maintainer: your_name
version: ${{ github.ref }} # refs/tags/v*.*.*
arch: 'amd64' # optional
depends: 'libc6 (>= 2.2.1), git' # optional
desc: 'this is sample package.' # optional
homepage: 'https://github.com/jiro4989/build-deb-action' # optional
id: build
# Check a created deb file
- name: Check a path of deb file
run: ls ${{ steps.build.outputs.file_name }}
- #54 Migrate Nim to Golang
replacetool
was replaced by golang- Docker base image was changed from ubuntu 22.04 to ubuntu 24.04
- Default value of optional parameters (
depends
,homepage
andsection
) was changed fromnone
to""
(empty string)
- PR #45 - Makes all files owned by root
- Changed default file owner to
root
. Usekeep_ownership: true
if you want to revert tov2
behavior.
- Changed default file owner to
- Create a new branch
- Commit
- Merge the branch into
develop
branch - Push
develop
branch - Check passing all tests
- Create a new pull request
- 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
.
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
This reviewdog action template itself is integrated with reviewdog to run lints which is useful for Docker container based actions.
Supported linters: