Moving docker building from TravisCI to docker actions. Tested built images on amd64 and arm64. Adding also dependabot checks for used github action script updates.
pull/718/head
BIBOLV 2022-12-04 15:14:45 +02:00
rodzic 9a8cd21628
commit db11475e3d
9 zmienionych plików z 68 dodań i 157 usunięć

Wyświetl plik

@ -1,105 +0,0 @@
version: 2
jobs:
amd64:
machine:
enabled: true
steps:
- checkout
- run:
command: |
if [[ ! $CIRCLE_BRANCH ]]
then
DOCKER_TAG=release-$CIRCLE_TAG
else
DOCKER_TAG=latest
fi
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker build --pull -t $DOCKERHUB_REPO:$DOCKER_TAG-amd64 -f docker/Dockerfile .
sudo docker push $DOCKERHUB_REPO:$DOCKER_TAG-amd64
armhf:
machine:
enabled: true
steps:
- checkout
- run:
command: |
if [[ ! $CIRCLE_BRANCH ]]
then
DOCKER_TAG=release-$CIRCLE_TAG
else
DOCKER_TAG=latest
fi
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker build --pull -t $DOCKERHUB_REPO:$DOCKER_TAG-armhf -f docker/Dockerfile.armhf .
sudo docker push $DOCKERHUB_REPO:$DOCKER_TAG-armhf
arm64v8:
machine:
enabled: true
steps:
- checkout
- run:
command: |
if [[ ! $CIRCLE_BRANCH ]]
then
DOCKER_TAG=release-$CIRCLE_TAG
else
DOCKER_TAG=latest
fi
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker build --pull -t $DOCKERHUB_REPO:$DOCKER_TAG-arm64v8 -f docker/Dockerfile.arm64v8 .
sudo docker push $DOCKERHUB_REPO:$DOCKER_TAG-arm64v8
multiarch:
machine:
enabled: true
image: ubuntu-2004:202201-02
steps:
- run:
command: |
if [[ ! $CIRCLE_BRANCH ]]
then
DOCKER_TAG=release-$CIRCLE_TAG
else
DOCKER_TAG=latest
fi
#
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
#
sudo docker manifest create --amend $DOCKERHUB_REPO:$DOCKER_TAG $DOCKERHUB_REPO:$DOCKER_TAG-amd64 $DOCKERHUB_REPO:$DOCKER_TAG-armhf $DOCKERHUB_REPO:$DOCKER_TAG-arm64v8
sudo docker manifest annotate $DOCKERHUB_REPO:$DOCKER_TAG $DOCKERHUB_REPO:$DOCKER_TAG-amd64 --os linux --arch amd64
sudo docker manifest annotate $DOCKERHUB_REPO:$DOCKER_TAG $DOCKERHUB_REPO:$DOCKER_TAG-armhf --os linux --arch arm --variant v7
sudo docker manifest annotate $DOCKERHUB_REPO:$DOCKER_TAG $DOCKERHUB_REPO:$DOCKER_TAG-arm64v8 --os linux --arch arm64 --variant v8
sudo docker manifest push $DOCKERHUB_REPO:$DOCKER_TAG -p
workflows:
version: 2
publish:
jobs:
- amd64:
filters:
branches:
only: master
tags:
only: /^\d+\.\d+\.\d+$/
- armhf:
filters:
branches:
only: master
tags:
only: /^\d+\.\d+\.\d+$/
- arm64v8:
filters:
branches:
only: master
tags:
only: /^\d+\.\d+\.\d+$/
- multiarch:
requires:
- amd64
- armhf
- arm64v8
filters:
branches:
only: master
tags:
only: /^\d+\.\d+\.\d+$/

7
.github/dependabot.yml vendored 100644
Wyświetl plik

@ -0,0 +1,7 @@
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"

Wyświetl plik

@ -0,0 +1,53 @@
name: Build docker
on:
push:
branches:
- 'master'
tags:
- '*.*.*'
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: weetmuts/wmbusmeters
tags: type=ref,event=tag
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
-
name: Build and push not tagged release
if: ${{ !steps.meta.outputs.tags }}
uses: docker/build-push-action@v3
with:
context: docker/
platforms: linux/amd64,linux/arm64,linux/armv7
push: true
tags: weetmuts/wmbusmeters:latest
-
name: Build and push tagged release
if: ${{ steps.meta.outputs.tags }}
uses: docker/build-push-action@v3
with:
context: docker/
platforms: linux/amd64,linux/arm64,linux/armv7
push: true
tags: weetmuts/wmbusmeters:release-${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }}

Wyświetl plik

@ -14,8 +14,8 @@ 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)|
| MacOSX | [![Build MacOSX Status](https://github.com/weetmuts/wmbusmeters/workflows/Build%20MacOSX/badge.svg)](https://github.com/weetmuts/wmbusmeters/actions)|
|Docker |[![CircleCI>](https://circleci.com/gh/weetmuts/wmbusmeters.svg?style=shield)](https://circleci.com/gh/weetmuts/wmbusmeters)|
|Snap |[![wmbusmeters](https://snapcraft.io//wmbusmeters/badge.svg)](https://snapcraft.io/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)|
# Distributions

Wyświetl plik

@ -1,4 +1,4 @@
FROM multiarch/alpine:amd64-latest-stable AS build
FROM multiarch/alpine:${TARGETARCH}-latest-stable AS build
RUN apk add --no-cache alpine-sdk gcc linux-headers ncurses-dev librtlsdr-dev cmake libusb-dev bash
RUN git clone https://github.com/weetmuts/wmbusmeters.git && \
git clone https://github.com/weetmuts/rtl-wmbus.git && \
@ -10,7 +10,7 @@ RUN make release && chmod 755 build/rtl_wmbus
WORKDIR /rtl_433
RUN mkdir build && cd build && cmake ../ && make
FROM multiarch/alpine:amd64-latest-stable as scratch
FROM multiarch/alpine:${TARGETARCH}-latest-stable as scratch
ENV QEMU_EXECVE=1
RUN apk add --no-cache mosquitto-clients libstdc++ curl libusb ncurses rtl-sdr netcat-openbsd
WORKDIR /wmbusmeters
@ -19,4 +19,4 @@ COPY --from=build /rtl-wmbus/build/rtl_wmbus /usr/bin/rtl_wmbus
COPY --from=build /rtl_433/build/src/rtl_433 /usr/bin/rtl_433
COPY --from=build /wmbusmeters/docker/docker-entrypoint.sh /wmbusmeters/docker-entrypoint.sh
VOLUME /wmbusmeters_data/
CMD ["sh", "/wmbusmeters/docker-entrypoint.sh"]
CMD ["sh", "/wmbusmeters/docker-entrypoint.sh"]

Wyświetl plik

@ -1,22 +0,0 @@
FROM multiarch/alpine:arm64-latest-stable AS build
RUN apk add --no-cache alpine-sdk gcc linux-headers ncurses-dev librtlsdr-dev cmake libusb-dev bash
RUN git clone https://github.com/weetmuts/wmbusmeters.git && \
git clone https://github.com/weetmuts/rtl-wmbus.git && \
git clone https://github.com/merbanan/rtl_433.git
WORKDIR /wmbusmeters
RUN make
WORKDIR /rtl-wmbus
RUN make release && chmod 755 build/rtl_wmbus
WORKDIR /rtl_433
RUN mkdir build && cd build && cmake ../ && make
FROM multiarch/alpine:arm64-latest-stable as scratch
ENV QEMU_EXECVE=1
RUN apk add --no-cache mosquitto-clients libstdc++ curl libusb ncurses rtl-sdr netcat-openbsd
WORKDIR /wmbusmeters
COPY --from=build /wmbusmeters/build/wmbusmeters /wmbusmeters/wmbusmeters
COPY --from=build /rtl-wmbus/build/rtl_wmbus /usr/bin/rtl_wmbus
COPY --from=build /rtl_433/build/src/rtl_433 /usr/bin/rtl_433
COPY --from=build /wmbusmeters/docker/docker-entrypoint.sh /wmbusmeters/docker-entrypoint.sh
VOLUME /wmbusmeters_data/
CMD ["sh", "/wmbusmeters/docker-entrypoint.sh"]

Wyświetl plik

@ -1,22 +0,0 @@
FROM multiarch/alpine:armhf-latest-stable AS build
RUN apk add --no-cache alpine-sdk gcc linux-headers ncurses-dev librtlsdr-dev cmake libusb-dev bash
RUN git clone https://github.com/weetmuts/wmbusmeters.git && \
git clone https://github.com/weetmuts/rtl-wmbus.git && \
git clone https://github.com/merbanan/rtl_433.git
WORKDIR /wmbusmeters
RUN make
WORKDIR /rtl-wmbus
RUN make release && chmod 755 build/rtl_wmbus
WORKDIR /rtl_433
RUN mkdir build && cd build && cmake ../ && make
FROM multiarch/alpine:armhf-latest-stable as scratch
ENV QEMU_EXECVE=1
RUN apk add --no-cache mosquitto-clients libstdc++ curl libusb ncurses rtl-sdr netcat-openbsd
WORKDIR /wmbusmeters
COPY --from=build /wmbusmeters/build/wmbusmeters /wmbusmeters/wmbusmeters
COPY --from=build /rtl-wmbus/build/rtl_wmbus /usr/bin/rtl_wmbus
COPY --from=build /rtl_433/build/src/rtl_433 /usr/bin/rtl_433
COPY --from=build /wmbusmeters/docker/docker-entrypoint.sh /wmbusmeters/docker-entrypoint.sh
VOLUME /wmbusmeters_data/
CMD ["sh", "/wmbusmeters/docker-entrypoint.sh"]

Wyświetl plik

@ -7,8 +7,8 @@ MQTT, curled to a REST api, inserted into a database or stored in a log file.
[FAQ/WIKI/MANUAL pages](https://github.com/weetmuts/wmbusmeters)
- Supported architectures
- ARMv7 32-bit (`arm32v7`)
- ARMv8 64-bit (`arm64v8`)
- ARMv7 32-bit (`armv7`)
- ARMv8 64-bit (`arm64`)
- Linux x86-64 (`amd64`)
## Running the wmbusmeters container

Wyświetl plik

@ -2,6 +2,6 @@
[ ! -d /wmbusmeters_data/logs/meter_readings ] && mkdir -p /wmbusmeters_data/logs/meter_readings
[ ! -d /wmbusmeters_data/etc/wmbusmeters.d ] && mkdir -p /wmbusmeters_data/etc/wmbusmeters.d
[ ! -f /wmbusmeters_data/etc/wmbusmeters.conf ] && echo -e "loglevel=normal\ndevice=auto\nlistento=t1\nlogtelegrams=false\nformat=json\nmeterfiles=/wmbusmeters_data/logs/meter_readings\nmeterfilesaction=overwrite\nlogfile=/wmbusmeters_data/logs/wmbusmeters.log" > /wmbusmeters_data/etc/wmbusmeters.conf
[ ! -f /wmbusmeters_data/etc/wmbusmeters.conf ] && echo -e "loglevel=normal\ndevice=auto:t1\ndonotprobe=/dev/ttyAMA0\nlogtelegrams=false\nformat=json\nmeterfiles=/wmbusmeters_data/logs/meter_readings\nmeterfilesaction=overwrite\nlogfile=/wmbusmeters_data/logs/wmbusmeters.log" > /wmbusmeters_data/etc/wmbusmeters.conf
/wmbusmeters/wmbusmeters --useconfig=/wmbusmeters_data