Skip to content

Commit

Permalink
meshtasticd debian: split libs for PPA
Browse files Browse the repository at this point in the history
  • Loading branch information
vidplace7 committed Jan 5, 2025
1 parent 6aabbed commit 7bbe201
Show file tree
Hide file tree
Showing 10 changed files with 128 additions and 9 deletions.
41 changes: 41 additions & 0 deletions .github/workflows/build_debian_src.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Build Debian Source Package

on: workflow_call

permissions:
contents: write
packages: write

jobs:
build-debian-src:
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}

- name: Install deps
shell: bash
run: |
sudo apt-get update -y --fix-missing
sudo apt-get install -y devscripts equivs
- name: Fetch libdeps, package debian source
run: debian/ci_pack_sdeb.sh

- name: Get release version string
run: |
echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
echo "short=$(./bin/buildinfo.py short)" >> $GITHUB_OUTPUT
id: version

- name: Store binaries as an artifact
uses: actions/upload-artifact@v4
with:
name: firmware-debian-${{ steps.version.outputs.long }}-src.zip
overwrite: true
path: |
../meshtasticd_${{ steps.version.outputs.short }}*
8 changes: 8 additions & 0 deletions .github/workflows/main_matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,9 @@ jobs:
with:
board: ${{ matrix.board }}

package-ppa:
uses: ./.github/workflows/package_ppa.yml

package-raspbian:
uses: ./.github/workflows/package_raspbian.yml

Expand Down Expand Up @@ -332,12 +335,17 @@ jobs:
run: >-
bin/bump_version.py
- name: Update debian changelog
run: >-
debian/ci_changelog.sh
- name: Create version.properties pull request
uses: peter-evans/create-pull-request@v7
with:
title: Bump version.properties
add-paths: |
version.properties
debian/changelog
release-firmware:
strategy:
Expand Down
54 changes: 54 additions & 0 deletions .github/workflows/package_ppa.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Package Launchpad PPA

on:
workflow_call:
workflow_dispatch:

permissions:
contents: write
packages: write

jobs:
build-debian-src:
uses: ./.github/workflows/build_debian_src.yml

package-ppa:
runs-on: ubuntu-24.04
needs: build-debian-src
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}

- name: Get release version string
run: |
echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
echo "short=$(./bin/buildinfo.py short)" >> $GITHUB_OUTPUT
id: version

- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: firmware-debian-${{ steps.version.outputs.long }}-src.zip
merge-multiple: true

- name: Install deps
shell: bash
run: |
sudo apt-get update -y --fix-missing
sudo apt-get install -y dput
- name: Display structure of downloaded files
run: ls -R

- name: Publish PPA
uses: yuezk/publish-ppa-package@v2
with:
repository: "meshtastic/meshtastic-daily"
gpg_private_key: ${{ secrets.PPA_GPG_PRIVATE_KEY }}
tarball: "meshtasticd_${{ steps.version.outputs.short }}.tar.xz"
deb_email: "github-actions[bot]@users.noreply.github.com"
deb_fullname: "github-actions[bot]"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
.pio
pio

# ignore vscode IDE settings files
.vscode/*
Expand Down
1 change: 1 addition & 0 deletions debian/update_changelog.sh → debian/ci_changelog.sh
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/usr/bin/bash
export DEBEMAIL="github-actions[bot]@users.noreply.github.com"

dch --newversion "$(python3 bin/buildinfo.py short)-1" \
--distribution unstable \
"GitHub Actions Automatic version bump"
9 changes: 9 additions & 0 deletions debian/ci_pack_sdeb.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/bash
export PLATFORMIO_LIBDEPS_DIR=pio/libdeps
export PLATFORMIO_PACKAGES_DIR=pio/packages

# Download libraries to `libdeps`
platformio pkg install -e native

# Build the source deb
debuild -S
5 changes: 3 additions & 2 deletions debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@ Section: misc
Priority: optional
Maintainer: Austin Lane <[email protected]>
Build-Depends: debhelper-compat (= 13),
python3-pip,
python3-venv,
platformio,
python3-protobuf,
python3-grpcio,
git,
g++,
pkg-config,
Expand Down
15 changes: 8 additions & 7 deletions debian/rules
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
#!/usr/bin/make -f
# export DH_VERBOSE = 1

# Use the "dh" sequencer
%:
dh $@

# https://docs.platformio.org/en/latest/envvars.html
PIO_ENV:=\
PLATFORMIO_LIBDEPS_DIR=pio/libdeps \
PLATFORMIO_PACKAGES_DIR=pio/packages

override_dh_auto_build:
# Terrible hack to use modern platformio to build the native version
# python3 -m venv venv
# . venv/bin/activate
pip install platformio --break-system-packages
platformio run -e native
# deactivate
# rm -rf venv
# Build with platformio
$(PIO_ENV) platformio run -e native
# Move the binary and default config to the correct name
mv .pio/build/native/program .pio/build/native/meshtasticd
cp bin/config-dist.yaml bin/config.yaml
2 changes: 2 additions & 0 deletions debian/source/include-binaries
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
pio/libdeps
pio/packages
1 change: 1 addition & 0 deletions debian/source/options
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
extend-diff-ignore = "\.pio"

0 comments on commit 7bbe201

Please sign in to comment.