feat: external project build template
This commit is contained in:
commit
e4a92d0ecf
6 changed files with 109 additions and 0 deletions
27
.editorconfig
Normal file
27
.editorconfig
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[COMMIT_EDITMSG]
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
max_line_length = 80
|
||||
|
||||
[control]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[Makefile]
|
||||
indent_style = tab
|
||||
|
||||
[*.md]
|
||||
max_line_length = 80
|
||||
|
||||
[*.{yml,yaml}]
|
||||
indent_size = 2
|
||||
|
||||
[*.patch]
|
||||
trim_trailing_whitespace = false
|
||||
40
.woodpecker/build.yaml
Normal file
40
.woodpecker/build.yaml
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
when:
|
||||
- event: push
|
||||
branch: ${CI_REPO_DEFAULT_BRANCH}
|
||||
- event: pull_request
|
||||
|
||||
steps:
|
||||
- name: builder
|
||||
image: woodpeckerci/plugin-kaniko:1.3.0
|
||||
when:
|
||||
- path: Dockerfile.builder
|
||||
event: push
|
||||
branch: ${CI_REPO_DEFAULT_BRANCH}
|
||||
settings:
|
||||
registry: ${CI_FORGE_URL##https://}
|
||||
repo: ${CI_REPO_OWNER}/${CI_REPO_NAME}-builder
|
||||
dockerfile: Dockerfile.builder
|
||||
username: CIBot
|
||||
password:
|
||||
from_secret: package_token
|
||||
- name: compile
|
||||
image: ${CI_FORGE_URL##https://}/${CI_REPO_OWNER}/${CI_REPO_NAME}-builder
|
||||
when:
|
||||
- event: push
|
||||
branch: ${CI_REPO_DEFAULT_BRANCH}
|
||||
- event: pull_request
|
||||
commands:
|
||||
- make compile
|
||||
- name: dpkg
|
||||
image: ubuntu:24.04
|
||||
when:
|
||||
- event: push
|
||||
branch: ${CI_REPO_DEFAULT_BRANCH}
|
||||
depends_on: compile
|
||||
commands:
|
||||
- make dpkg
|
||||
environment:
|
||||
password:
|
||||
from_secret: package_token
|
||||
commit_abbrev: ${CI_COMMIT_SHA:0:7}
|
||||
|
||||
8
Dockerfile.builder
Normal file
8
Dockerfile.builder
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
# use specific image if relevant (rust, golang)
|
||||
FROM ubuntu:24.04
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install curl \
|
||||
# other packages to build \
|
||||
|
||||
|
||||
16
Makefile
Normal file
16
Makefile
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
package = mypackage.deb
|
||||
|
||||
.PHONY: compile
|
||||
compile:
|
||||
cd upstream && echo compile
|
||||
|
||||
.PHONY: dpkg
|
||||
dpkg:
|
||||
make -p deb-packagee/usr/bin/
|
||||
cp upstream/bin deb-package/usr/bin/
|
||||
chmod -R o-w deb-package/
|
||||
sed -i "s|%date%|`date +%Y%m%d`|g" deb-package/DEBIAN/control
|
||||
sed -i "s|%hash%|$(commit_abbrev)|g" deb-package/DEBIAN/control
|
||||
dpkg-deb --build deb-package/ $(package)
|
||||
@curl --user CIBot:$(PASSWORD) $(package) $(CI_FORGE_URL)/api/packages/$(CI_REPO_OWNER)/debian/pool/noble/main/upload
|
||||
6
README.md
Normal file
6
README.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
# Template for external project package building
|
||||
|
||||
- git submodule add <https://repo.example.com/external/repo.git> upstream
|
||||
- Makefile: change package name & compile / dpkg target instructions
|
||||
- Dockerfile.builder: required deb packages / base image
|
||||
- deb-package/DEBIAN/control: Package name, depends, conflict & description
|
||||
12
deb-package/DEBIAN/control
Normal file
12
deb-package/DEBIAN/control
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
Package: mypackage-main
|
||||
Version: 0.0.1~git%date%.%hash%-1
|
||||
Section: base
|
||||
Priority: optional
|
||||
Architecture: amd64
|
||||
Maintainer: pips <pips@e5150.fr>
|
||||
Homepage: https://example.com
|
||||
Suggests: suggeted-packages
|
||||
Depends: depends (>= X.Y.Z), packages (>= X.Y)
|
||||
Conflicts: package-from-official-repo
|
||||
Description: Description of mypackage
|
||||
Auto packaging of mypackage following main dev branch
|
||||
Loading…
Add table
Add a link
Reference in a new issue