Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jiro4989/build-deb-action

build-deb-action builds a simple debian package.
https://github.com/jiro4989/build-deb-action

debian docker github-actions nim

Last synced: about 2 months ago
JSON representation

build-deb-action builds a simple debian package.

Awesome Lists containing this project

README

        

# build-deb-action

[![Test](https://github.com/jiro4989/build-deb-action/workflows/Test/badge.svg)](https://github.com/jiro4989/build-deb-action/actions?query=workflow%3ATest)
[![reviewdog](https://github.com/jiro4989/build-deb-action/workflows/reviewdog/badge.svg)](https://github.com/jiro4989/build-deb-action/actions?query=workflow%3Areviewdog)
[![release](https://github.com/jiro4989/build-deb-action/workflows/release/badge.svg)](https://github.com/jiro4989/build-deb-action/actions?query=workflow%3Arelease)
[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/jiro4989/build-deb-action?logo=github&sort=semver)](https://github.com/jiro4989/build-deb-action/releases)
[![action-bumpr supported](https://img.shields.io/badge/bumpr-supported-ff69b4?logo=github&link=https://github.com/haya14busa/action-bumpr)](https://github.com/haya14busa/action-bumpr)

`build-deb-action` builds a simple debian package.

See [build-rpm-action](https://github.com/jiro4989/build-rpm-action) if you want to create `rpm` package.

## Input

```yaml
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

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

## Usage

```yaml
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
1. Commit
1. Merge the branch into `develop` branch
1. Push `develop` branch
1. Check passing all tests
1. Create a new pull request
1. 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](https://github.com/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](https://github.com/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:

### 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](https://user-images.githubusercontent.com/3797062/72735107-7fbb9600-3bde-11ea-8087-12af76e7ee6f.png)

Supported linters:

* [reviewdog/action-shellcheck](https://github.com/reviewdog/action-shellcheck)
* [reviewdog/action-hadolint](https://github.com/reviewdog/action-hadolint)
* [reviewdog/action-misspell](https://github.com/reviewdog/action-misspell)