Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 106 additions & 0 deletions .github/workflows/build-deb.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
name: Build and Publish Debian Package

on:
push:

jobs:
build:
runs-on: ubuntu-latest
env:
DEB_BUILD_OPTIONS: nocheck # or whatever options you need
strategy:
matrix:
distro: [debian-bookworm, debian-bullseye, ubuntu-24.04, ubuntu-22.04]
include:
- distro: debian-bookworm
image: debian:bookworm
os: debian
version: bookworm
- distro: debian-bullseye
image: debian:bullseye
os: debian
version: bullseye
- distro: ubuntu-24.04
image: ubuntu:24.04
os: ubuntu
version: noble
- distro: ubuntu-22.04
image: ubuntu:22.04
os: ubuntu
version: jammy
container:
image: ${{ matrix.image }}
steps:
- name: Setup dependencies
run: |
apt-get update
apt-get install -y build-essential devscripts debhelper autotools-dev autoconf-archive \
pkg-config fakeroot sed git tar gzip python3-pip python3-venv curl jq libyaml-cpp-dev

curl -1sLf 'https://dl.cloudsmith.io/basic/robertburger/common/setup.deb.sh' | bash
curl -1sLf 'https://dl.cloudsmith.io/basic/robertburger/robotkernel/setup.deb.sh' | bash
apt-get update
apt-get install -y libethercat-dev libosal-dev robotkernel-service-helper robotkernel-dev \
service-provider-canopen-protocol-dev \
service-provider-file-protocol-dev \
service-provider-key-value-dev \
service-provider-memory-inspection-dev \
service-provider-process-data-inspection-dev \
service-provider-sercos-protocol-dev

- name: Checkout code
uses: actions/checkout@v4

- name: Mark working directory as safe
run: git config --global --add safe.directory $GITHUB_WORKSPACE

- name: update branch name
run: |
VERSION=$(dpkg-parsechangelog | sed -n 's/^Version: //p')
sed "s|PACKAGE_VERSION|$VERSION|" configure.ac.in > configure.ac
env:
GITHUB_REF_NAME: ${{ github.ref_name }}

- name: Build .deb package
run: |
# baue mit dpkg-buildpackage (ohne signieren)
dpkg-buildpackage -us -uc -d

- name: Collect .deb artifact
run: |
mkdir -p artifacts/${{ matrix.os }}/${{ matrix.version }}
mv ../module-ethercat*.deb artifacts/${{ matrix.os }}/${{ matrix.version }}

- name: Set sanitized image name
id: sanitize
run: |
version=$(dpkg-parsechangelog | sed -n 's/^Version: //p')
echo "sanitized_image=$(echo "$version-$IMAGE" | tr '/:' '--')" >> $GITHUB_OUTPUT
env:
IMAGE: ${{ matrix.image }}

- name: Upload .deb package
uses: actions/upload-artifact@v4
with:
name: module-ethercat-${{ steps.sanitize.outputs.sanitized_image }}.deb
path: artifacts/${{ matrix.os }}/${{ matrix.version }}/*.deb

- name: Upload to Cloudsmith (${{ matrix.os }}/${{ matrix.version }})
env:
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}
shell: bash
run: |
VERSION=$(dpkg-parsechangelog | sed -n 's/^Version: //p')
FILENAME="artifacts/${{ matrix.os }}/${{ matrix.version }}/module-ethercat_${VERSION}_amd64.deb"

python3 -m venv cloudsmith
cd cloudsmith
source bin/activate

python3 -m pip install --upgrade pip
pip3 install cloudsmith-cli

cloudsmith push deb robertburger/robotkernel/${{ matrix.os }}/${{ matrix.version }} ../${FILENAME} \
--republish \
--api-key "$CLOUDSMITH_API_KEY"

5 changes: 5 additions & 0 deletions bootstrap.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash

safe_branch=$(git describe --tags | tr '/:' '--')

sed "s|PACKAGE_VERSION|$safe_branch|" configure.ac.in > configure.ac
6 changes: 6 additions & 0 deletions debian/README.Debian
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
libosal for Debian
-----------------

<possible notes regarding this package - if none, delete this file>

-- Robert Burger <robert.burger@dlr.de> Tue, 30 May 2023 06:09:28 +0200
10 changes: 10 additions & 0 deletions debian/README.source
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
libosal for Debian
-----------------

<this file describes information about the source package, see Debian policy
manual section 4.14. You WILL either need to modify or delete this file>



-- Robert Burger <robert.burger@dlr.de> Tue, 30 May 2023 06:09:28 +0200

Loading