Skip to content

Commit 0a82a34

Browse files
committed
add otbr NAT64 support
1 parent 1548a55 commit 0a82a34

File tree

2 files changed

+40
-37
lines changed

2 files changed

+40
-37
lines changed

.github/workflows/builder.yml

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
1-
---
2-
# yamllint disable rule:line-length rule:truthy
3-
name: Build add-on
1+
name: Builder
42

53
env:
64
BUILD_ARGS: "--test"
7-
MONITORED_FILES: "apparmor.txt build.yaml config.yaml Dockerfile data rootfs"
5+
MONITORED_FILES: "build.yaml config.yaml Dockerfile rootfs"
86

97
on:
10-
pull_request:
11-
branches: ["master"]
128
push:
13-
branches: ["master"]
9+
branches:
10+
- master
11+
- nat64
12+
pull_request:
13+
branches:
14+
- master
1415

1516
jobs:
1617
init:
17-
runs-on: ubuntu-22.04
18+
runs-on: ubuntu-latest
1819
name: Initialize builds
1920
outputs:
20-
changed_files: ${{ steps.changed_files.outputs.all }}
2121
changed_addons: ${{ steps.changed_addons.outputs.addons }}
2222
changed: ${{ steps.changed_addons.outputs.changed }}
2323
steps:
@@ -26,16 +26,11 @@ jobs:
2626

2727
- name: Get changed files
2828
id: changed_files
29-
uses: masesgroup/retrieve-changed-files@v3.0.0
29+
uses: jitterbit/get-changed-files@v1
3030

31-
- name: Get add-ons
31+
- name: Find add-on directories
3232
id: addons
33-
run: |
34-
declare -a addons
35-
for addon in $(find ./ -name config.yaml | cut -d "/" -f2 | sort -u); do
36-
addons+=("$addon");
37-
done
38-
echo "addons=${addons[@]}" >> "$GITHUB_OUTPUT"
33+
uses: home-assistant/actions/helpers/find-addons@master
3934

4035
- name: Get changed add-ons
4136
id: changed_addons
@@ -46,23 +41,26 @@ jobs:
4641
done
4742
4843
changed=$(echo ${changed_addons[@]} | rev | cut -c 2- | rev)
44+
4945
if [[ -n ${changed} ]]; then
5046
echo "Changed add-ons: $changed";
51-
echo "changed=true" >> "$GITHUB_OUTPUT";
52-
echo "addons=[$changed]" >> "$GITHUB_OUTPUT";
47+
echo "changed=true" >> $GITHUB_OUTPUT;
48+
echo "addons=[$changed]" >> $GITHUB_OUTPUT;
5349
else
5450
echo "No add-on had any monitored files changed (${{ env.MONITORED_FILES }})";
5551
fi
56-
5752
build:
5853
needs: init
59-
runs-on: ubuntu-22.04
54+
runs-on: ubuntu-latest
6055
if: needs.init.outputs.changed == 'true'
6156
name: Build ${{ matrix.arch }} ${{ matrix.addon }} add-on
6257
strategy:
6358
matrix:
6459
addon: ${{ fromJson(needs.init.outputs.changed_addons) }}
6560
arch: ["aarch64", "amd64", "armhf", "armv7", "i386"]
61+
permissions:
62+
contents: read
63+
packages: write
6664

6765
steps:
6866
- name: Check out repository
@@ -74,28 +72,30 @@ jobs:
7472
with:
7573
path: "./${{ matrix.addon }}"
7674

77-
- name: Check add-on
75+
- name: Check if add-on should be built
7876
id: check
7977
run: |
80-
if [[ "${{ steps.info.outputs.architectures }}" =~ ${{ matrix.arch }} ]]; then
81-
echo "build_arch=true" >> "$GITHUB_OUTPUT";
82-
else
83-
echo "${{ matrix.arch }} is not a valid arch for ${{ matrix.addon }}, skipping build";
84-
fi
85-
86-
- name: Set build arguments
87-
if: steps.check.outputs.build_arch == 'true'
88-
run: |
89-
if [[ -z "${{ github.head_ref }}" ]] && [[ "${{ github.event_name }}" == "push" ]]; then
90-
echo "BUILD_ARGS=--docker-hub-check" >> $GITHUB_ENV;
78+
if [[ "${{ steps.info.outputs.image }}" == "null" ]]; then
79+
echo "Image property is not defined, skipping build"
80+
echo "build_arch=false" >> $GITHUB_OUTPUT;
81+
elif [[ "${{ steps.info.outputs.architectures }}" =~ ${{ matrix.arch }} ]]; then
82+
echo "build_arch=true" >> $GITHUB_OUTPUT;
83+
echo "image=$(echo ${{ steps.info.outputs.image }} | cut -d'/' -f3)" >> $GITHUB_OUTPUT;
84+
if [[ -z "${{ github.head_ref }}" ]] && [[ "${{ github.event_name }}" == "push" ]]; then
85+
echo "BUILD_ARGS=" >> $GITHUB_ENV;
86+
fi
87+
else
88+
echo "${{ matrix.arch }} is not a valid arch for ${{ matrix.addon }}, skipping build";
89+
echo "build_arch=false" >> $GITHUB_OUTPUT;
9190
fi
9291
93-
- name: Login to DockerHub
94-
if: env.BUILD_ARGS == '--docker-hub-check'
92+
- name: Login to GitHub Container Registry
93+
if: env.BUILD_ARGS != '--test'
9594
uses: docker/[email protected]
9695
with:
97-
username: ${{ secrets.DOCKERHUB_USERNAME }}
98-
password: ${{ secrets.DOCKERHUB_TOKEN }}
96+
registry: ghcr.io
97+
username: ${{ github.repository_owner }}
98+
password: ${{ secrets.GITHUB_TOKEN }}
9999

100100
- name: Build ${{ matrix.addon }} add-on
101101
if: steps.check.outputs.build_arch == 'true'
@@ -105,4 +105,6 @@ jobs:
105105
${{ env.BUILD_ARGS }} \
106106
--${{ matrix.arch }} \
107107
--target /data/${{ matrix.addon }} \
108+
--image "${{ steps.check.outputs.image }}" \
109+
--docker-hub "ghcr.io/${{ github.repository_owner }}" \
108110
--addon

silabs-multiprotocol_dev/config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ version: 2.4.6
33
slug: silabs_multiprotocol_dev
44
name: Silicon Labs Multiprotocol dev
55
description: Zigbee and OpenThread multiprotocol add-on dev
6+
image: ghcr.io/regevbr/addons/{arch}-silabs-multiprotocol_dev
67
url: >
78
https://github.com/regevbr/addons/tree/master/silabs-multiprotocol_dev
89
arch:

0 commit comments

Comments
 (0)