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 fc5e453
Show file tree
Hide file tree
Showing 10 changed files with 116 additions and 9 deletions.
43 changes: 43 additions & 0 deletions .github/workflows/build_debian_src.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
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 long version string
run: echo "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: long_version

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

- name: Store binaries as an artifact
uses: actions/upload-artifact@v4
with:
name: firmware-debian-${{ steps.long_version.outputs.version }}-src.zip
overwrite: true
path: |
../meshtasticd_${{ steps.short_version.outputs.version }}*
3 changes: 3 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
46 changes: 46 additions & 0 deletions .github/workflows/package_ppa.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
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 "version=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version

- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: firmware-debian-${{ steps.version.outputs.version }}-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: dput to Launchpad PPA
# run: dput ppa:meshtastic/meshtastic something.changes
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ __pycache__
*.swo
*~

libdeps/
venv/
release/
.vscode/extensions.json
Expand Down
1 change: 1 addition & 0 deletions debian/update_changelog.sh → debian/ci_changelog.sh
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"
10 changes: 10 additions & 0 deletions debian/ci_pack_sdeb.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/bash
export PLATFORMIO_LIBDEPS_DIR=libdeps

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

# Build the source deb
debuild -S

# dput ppa:meshtastic/meshtastic-daily ../meshtastic_${VERSION}_source.changes
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
14 changes: 7 additions & 7 deletions debian/rules
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
#!/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=libdeps

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
1 change: 1 addition & 0 deletions debian/source/include-binaries
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
libdeps
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 fc5e453

Please sign in to comment.