Snap has been upgraded from core18 to core22.
Build process moved from snapcraft to github actions - now built snaps are being pushed to appropriate channels automatically.
Tested on amd64 and arm64 with imst and rtl_sdr.
Webhook should be removed in order to prevent parallel builds in github and snapcraft.
If login to snapcraft fails during build then store login token should be regenerated.
pull/729/head
BIBOLV 2022-12-08 23:44:51 +02:00
rodzic 535005a879
commit d5ed47ebf0
5 zmienionych plików z 87 dodań i 133 usunięć

Wyświetl plik

@ -0,0 +1,51 @@
name: Build Snap
on:
push:
branches:
- 'master'
tags:
- '*.*.*'
jobs:
build-and-release:
runs-on: ubuntu-latest
strategy:
matrix:
architecture:
- amd64
- armhf
- arm64
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: weetmuts/wmbusmeters
tags: type=ref,event=tag
- name: Build
id: build
uses: diddlesnaps/snapcraft-multiarch-action@v1
with:
architecture: ${{ matrix.architecture }}
- name: Publish release to Stable
uses: snapcore/action-publish@v1
if: ${{ steps.meta.outputs.tags }}
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.snapcraft_token }}
with:
snap: ${{ steps.build.outputs.snap }}
release: stable
- name: Publish latest to Edge
uses: snapcore/action-publish@v1
if: ${{ !steps.meta.outputs.tags }}
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.snapcraft_token }}
with:
snap: ${{ steps.build.outputs.snap }}
release: edge

Wyświetl plik

@ -1,45 +0,0 @@
#!/bin/bash
SNAP_NAME="wmbusmeters"
ARCH_LIST="arm64 armhf amd64"
if [ -n "$(git describe --tags | grep -)" ]; then
GIT_REV="$(git describe --tags | cut -f1,2 -d'-')"
echo "$GIT_REV is branch not tag release, exiting.."
exit 1
else
GIT_VER="$(git describe --tags)"
echo "This is release - $GIT_VER"
fi
if $(timeout 5 snapcraft status $SNAP_NAME >/dev/null); then
echo "snapcraft login sucessfull, continuing"
else
echo "Looks like snapcraft login is not sucessfull, exiting...."
exit 1
fi
for arch in $ARCH_LIST
do
snap_build_version="$(snapcraft status --arch $arch $SNAP_NAME | grep edge | awk '{print $2}')"
c=0
while [[ "$GIT_VER" != "$snap_build_version" && $c -lt 30 ]]; do
echo "GIT release version "$GIT_VER" != snap latest edge version at snapcraft for $arch "$snap_build_version", iter : $c";
((c = $c + 1));
sleep 300;
snap_build_version="$(snapcraft status --arch $arch $SNAP_NAME | grep edge | awk '{print $2}')"
done
if [[ "$GIT_VER" != "$snap_build_version" ]]; then
echo "GIT release version "$GIT_VER" != snap latest edge version on snapcraft for $arch "$snap_build_version", exiting..";
exit 1
fi
done
for arch in $ARCH_LIST
do
snap_build_id="$(snapcraft status --arch $arch $SNAP_NAME | grep edge | awk '{print $3}')"
echo "Snap build id for arch $arch - $snap_build_id, promoting to stable release"
snapcraft release $SNAP_NAME $snap_build_id stable
done

Wyświetl plik

@ -1,26 +0,0 @@
name: Promote snap from edge to stable channel
on:
push:
tags:
- '*'
jobs:
initial_sleep:
runs-on: ubuntu-latest
steps:
- name: Sleep for 30 minutes
uses: jakejarvis/wait-action@master
with:
time: '30m'
promote:
needs: initial_sleep
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: git fetch --prune --unshallow
- name: Install Snapcraft
uses: samuelmeuli/action-snapcraft@v1
with:
snapcraft_token: ${{ secrets.snapcraft_token }}
- name: Run promote script
run: bash .github/workflows/promote_snap.sh

Wyświetl plik

@ -15,7 +15,7 @@ The program runs on GNU/Linux, MacOSX, FreeBSD, and Raspberry Pi.
| Ubuntu | [![Build Ubuntu Status](https://github.com/weetmuts/wmbusmeters/workflows/Build%20Ubuntu/badge.svg)](https://github.com/weetmuts/wmbusmeters/actions)| | Ubuntu | [![Build Ubuntu Status](https://github.com/weetmuts/wmbusmeters/workflows/Build%20Ubuntu/badge.svg)](https://github.com/weetmuts/wmbusmeters/actions)|
| MacOSX | [![Build MacOSX Status](https://github.com/weetmuts/wmbusmeters/workflows/Build%20MacOSX/badge.svg)](https://github.com/weetmuts/wmbusmeters/actions)| | MacOSX | [![Build MacOSX Status](https://github.com/weetmuts/wmbusmeters/workflows/Build%20MacOSX/badge.svg)](https://github.com/weetmuts/wmbusmeters/actions)|
| Docker | [![Build Docker Status](https://github.com/weetmuts/wmbusmeters/workflows/Build%20docker/badge.svg)](https://hub.docker.com/r/weetmuts/wmbusmeters/)| | Docker | [![Build Docker Status](https://github.com/weetmuts/wmbusmeters/workflows/Build%20docker/badge.svg)](https://hub.docker.com/r/weetmuts/wmbusmeters/)|
| Snap | [![wmbusmeters](https://snapcraft.io//wmbusmeters/badge.svg)](https://snapcraft.io/wmbusmeters)| | Snap | [![Build Snap Status](https://github.com/weetmuts/wmbusmeters/workflows/Build%20Snap/badge.svg)](https://snapcraft.io/wmbusmeters)|
# Distributions # Distributions

Wyświetl plik

@ -10,18 +10,18 @@ description: |
to allow snap read USB devices and check that root user of your system is to allow snap read USB devices and check that root user of your system is
added to group that can read USB devices added to group that can read USB devices
base: core18 base: core22
confinement: strict confinement: strict
architectures: architectures:
- build-on: amd64 - build-on: amd64
run-on: amd64 build-for: amd64
- build-on: arm64 - build-on: arm64
run-on: arm64 build-for: arm64
- build-on: armhf - build-on: armhf
run-on: armhf build-for: armhf
parts: parts:
script: script:
@ -34,15 +34,15 @@ parts:
source: "https://github.com/weetmuts/wmbusmeters.git" source: "https://github.com/weetmuts/wmbusmeters.git"
source-type: git source-type: git
override-pull: | override-pull: |
snapcraftctl pull craftctl default
if [ -n "$(git describe --tags | grep -)" ]; then if [ -n "$(git describe --tags | grep -)" ]; then
GIT_REV="$(git describe --tags | cut -f1,2 -d'-')" GIT_REV="$(git describe --tags | cut -f1,2 -d'-')"
snapcraftctl set-version "$GIT_REV" craftctl set version="$GIT_REV"
snapcraftctl set-grade devel craftctl set grade=devel
else else
GIT_VER="$(git describe --tags)" GIT_VER="$(git describe --tags)"
snapcraftctl set-version "$GIT_VER" craftctl set version="$GIT_VER"
snapcraftctl set-grade stable craftctl set grade=stable
fi fi
plugin: autotools plugin: autotools
build-packages: build-packages:
@ -68,20 +68,14 @@ parts:
rtl-wmbus: rtl-wmbus:
source: "https://github.com/weetmuts/rtl-wmbus.git" source: "https://github.com/weetmuts/rtl-wmbus.git"
plugin: make plugin: make
artifacts: make-parameters:
- build/rtl_wmbus - DESTDIR=/usr
organize:
build/rtl_wmbus: usr/bin/rtl_wmbus
prime:
- usr/bin/rtl_wmbus
rtl-433: rtl-433:
source: "https://github.com/merbanan/rtl_433.git" source: "https://github.com/merbanan/rtl_433.git"
plugin: cmake plugin: cmake
organize: cmake-parameters:
bin/rtl_433: usr/bin/rtl_433 - -DCMAKE_INSTALL_PREFIX=/usr
prime:
- usr/bin/rtl_433
apps: apps:
wmbusmeters: wmbusmeters:
@ -97,8 +91,6 @@ apps:
layout: layout:
/usr/bin/wmbusmeters: /usr/bin/wmbusmeters:
bind-file: $SNAP/usr/bin/wmbusmeters bind-file: $SNAP/usr/bin/wmbusmeters
/sbin/killall5:
bind-file: $SNAP/sbin/killall5
#rtl #rtl
/usr/bin/rtl_433: /usr/bin/rtl_433:
bind-file: $SNAP/usr/bin/rtl_433 bind-file: $SNAP/usr/bin/rtl_433
@ -106,51 +98,33 @@ layout:
bind-file: $SNAP/usr/bin/rtl_sdr bind-file: $SNAP/usr/bin/rtl_sdr
/usr/bin/rtl_wmbus: /usr/bin/rtl_wmbus:
bind-file: $SNAP/usr/bin/rtl_wmbus bind-file: $SNAP/usr/bin/rtl_wmbus
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/librtlsdr.so.0: /usr/lib/$CRAFT_ARCH_TRIPLET/librtlsdr.so.0:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/librtlsdr.so.0 symlink: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET/librtlsdr.so.0
/lib/$SNAPCRAFT_ARCH_TRIPLET/libusb-1.0.so.0: /usr/lib/$CRAFT_ARCH_TRIPLET/libusb-1.0.so.0:
symlink: $SNAP/lib/$SNAPCRAFT_ARCH_TRIPLET/libusb-1.0.so.0 symlink: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET/libusb-1.0.so.0
#mosquitto #mosquitto
/usr/bin/mosquitto_pub: /usr/bin/mosquitto_pub:
bind-file: $SNAP/usr/bin/mosquitto_pub bind-file: $SNAP/usr/bin/mosquitto_pub
/usr/bin/mosquitto_sub: /usr/bin/mosquitto_sub:
bind-file: $SNAP/usr/bin/mosquitto_sub bind-file: $SNAP/usr/bin/mosquitto_sub
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libmosquitto.so.1: /usr/lib/$CRAFT_ARCH_TRIPLET/libmosquitto.so.1:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libmosquitto.so.1 symlink: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET/libmosquitto.so.1
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libcares.so.2: /usr/lib/$CRAFT_ARCH_TRIPLET/libcjson.so.1:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libcares.so.2 symlink: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET/libcjson.so.1
#curl #curl
/usr/bin/curl: /usr/bin/curl:
bind-file: $SNAP/usr/bin/curl bind-file: $SNAP/usr/bin/curl
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libcurl.so.4: /usr/lib/$CRAFT_ARCH_TRIPLET/libcurl.so.4:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libcurl.so.4 symlink: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET/libcurl.so.4
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libnghttp2.so.14: /usr/lib/$CRAFT_ARCH_TRIPLET/libnghttp2.so.14:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libnghttp2.so.14 symlink: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET/libnghttp2.so.14
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/librtmp.so.1: /usr/lib/$CRAFT_ARCH_TRIPLET/librtmp.so.1:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/librtmp.so.1 symlink: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET/librtmp.so.1
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libpsl.so.5: /usr/lib/$CRAFT_ARCH_TRIPLET/libpsl.so.5:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libpsl.so.5 symlink: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET/libpsl.so.5
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libldap_r-2.4.so.2: /usr/lib/$CRAFT_ARCH_TRIPLET/libldap-2.5.so.0:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libldap_r-2.4.so.2 symlink: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET/libldap-2.5.so.0
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/liblber-2.4.so.2: /usr/lib/$CRAFT_ARCH_TRIPLET/liblber-2.5.so.0:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/liblber-2.4.so.2 symlink: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET/liblber-2.5.so.0
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libsasl2.so.2: /usr/lib/$CRAFT_ARCH_TRIPLET/libsasl2.so.2:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libsasl2.so.2 symlink: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET/libsasl2.so.2
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libgssapi.so.3:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libgssapi.so.3
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libheimntlm.so.0:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libheimntlm.so.0
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libasn1.so.8:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libasn1.so.8
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libhcrypto.so.4:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libhcrypto.so.4
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libroken.so.18:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libroken.so.18
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libwind.so.0:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libwind.so.0
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libheimbase.so.1:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libheimbase.so.1
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libhx509.so.5:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libhx509.so.5
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libkrb5.so.26:
symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libkrb5.so.26