Skip to content

Commit 7654ef1

Browse files
author
Evgeny Torbin
committed
feat: create workflow for building BlueZ
1 parent 5c58743 commit 7654ef1

1 file changed

Lines changed: 82 additions & 0 deletions

File tree

.github/workflows/build-bluez.yml

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: multi-arch-bluez-build
2+
3+
on: pull_request
4+
5+
jobs:
6+
build-bluez:
7+
name: Build BlueZ ${{ matrix.version }} for ${{ matrix.arch }}
8+
runs-on: ${{ matrix.runner }}
9+
continue-on-error: true
10+
strategy:
11+
matrix:
12+
version: ["5.50", "5.83"]
13+
arch: ["amd64", "arm64", "armv7"]
14+
include:
15+
- arch: "amd64"
16+
runner: ["self-hosted", "Linux", "X64"]
17+
- arch: "arm64"
18+
runner: ["self-hosted", "Linux", "ARM64"]
19+
- arch: "armv7"
20+
runner: ["self-hosted", "Linux", "ARM"]
21+
container:
22+
image: debian:bullseye
23+
options: --privileged
24+
defaults:
25+
run:
26+
shell: bash
27+
steps:
28+
- name: Install dependencies
29+
run: |
30+
apt-get update && apt-get install -y -q --fix-missing --no-install-recommends \
31+
wget \
32+
build-essential \
33+
libglib2.0-dev \
34+
libdbus-1-dev \
35+
libdbus-glib-1-dev \
36+
libudev-dev \
37+
libreadline-dev \
38+
libical-dev \
39+
libsystemd-dev \
40+
udev \
41+
network-manager \
42+
python3-docutils \
43+
awscli
44+
45+
- name: Download BlueZ
46+
run: |
47+
wget https://www.kernel.org/pub/linux/bluetooth/bluez-${{ matrix.version }}.tar.xz
48+
tar -xf bluez-${{ matrix.version }}.tar.xz
49+
rm bluez-${{ matrix.version }}.tar.xz
50+
51+
- name: Build BlueZ
52+
working-directory: bluez-${{ matrix.version }}
53+
run: |
54+
./configure --enable-deprecated
55+
make
56+
make install DESTDIR=$(pwd)/installdir
57+
58+
- name: Generate archive
59+
working-directory: bluez-${{ matrix.version }}
60+
run: |
61+
tar -czf "bluez-${{ matrix.version }}-${{ matrix.arch }}.tar.gz" -C installdir .
62+
63+
- name: Upload to S3
64+
working-directory: bluez-${{ matrix.version }}
65+
env:
66+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
67+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
68+
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
69+
AWS_BUCKET: ${{ secrets.DL_BUCKET }}
70+
run: |
71+
FILENAME="bluez-${{ matrix.version }}-${{ matrix.arch }}.tar.gz"
72+
aws s3 cp --acl=public-read --no-progress "$FILENAME" "s3://$AWS_BUCKET/dl/bluez/${{ matrix.version }}/$FILENAME"
73+
74+
- name: Drop AWS cache
75+
env:
76+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
77+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
78+
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
79+
run: |
80+
aws cloudfront create-invalidation \
81+
--distribution-id ${{ secrets.AWS_CACHE_INVALIDATION }} \
82+
--paths "/dl/bluez/${{ matrix.version }}/*"

0 commit comments

Comments
 (0)