meshtasticd debian: split libs for PPA (#5745)

This commit is contained in:
Austin 2025-01-05 11:22:11 -05:00 committed by GitHub
parent 6aabbedc00
commit 35814fd4bc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 132 additions and 9 deletions

41
.github/workflows/build_debian_src.yml vendored Normal file
View File

@ -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 }}*

View File

@ -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
@ -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:

58
.github/workflows/package_ppa.yml vendored Normal file
View File

@ -0,0 +1,58 @@
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
if: ${{ github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }}
uses: yuezk/publish-ppa-package@v2
with:
# See https://launchpad.net/~meshtastic/+archive/ubuntu/meshtastic-daily
repository: "meshtastic/meshtastic-daily"
gpg_private_key: ${{ secrets.PPA_GPG_PRIVATE_KEY }}
tarball: "meshtasticd_${{ steps.version.outputs.short }}.tar.xz"
# Supported Ubuntu versions
series: "plucky oracular noble jammy"
deb_email: "github-actions[bot]@users.noreply.github.com"
deb_fullname: "github-actions[bot]"

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
.pio
pio
# ignore vscode IDE settings files
.vscode/*

1
debian/update_changelog.sh → debian/ci_changelog.sh vendored Normal file → Executable file
View File

@ -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
debian/ci_pack_sdeb.sh vendored Executable file
View File

@ -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
debian/control vendored
View File

@ -3,8 +3,9 @@ Section: misc
Priority: optional
Maintainer: Austin Lane <vidplace7@gmail.com>
Build-Depends: debhelper-compat (= 13),
python3-pip,
python3-venv,
platformio,
python3-protobuf,
python3-grpcio,
git,
g++,
pkg-config,

15
debian/rules vendored
View File

@ -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
debian/source/include-binaries vendored Normal file
View File

@ -0,0 +1,2 @@
pio/libdeps
pio/packages

1
debian/source/options vendored Normal file
View File

@ -0,0 +1 @@
extend-diff-ignore = "\.pio"