-
Notifications
You must be signed in to change notification settings - Fork 5
165 lines (136 loc) · 4.25 KB
/
Copy pathm17-gateway.yml
File metadata and controls
165 lines (136 loc) · 4.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
name: Build and Package
on:
workflow_dispatch:
push:
branches: [ master ]
tags: [ 'v*' ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
# with:
# fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.24.x'
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y dpkg-dev
- name: Get version
id: version
run: |
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/v}
else
VERSION="0.0.0-dev.${GITHUB_SHA::8}"
fi
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
echo "Building version: $VERSION"
- name: Download dependencies
run: go mod download
- name: Run tests
run: go test .
- name: Build m17-gateway for Raspberry Pi (ARM64)
run: |
cd cmd/m17-gateway
echo "Building M17 Gateway for ARM64 architecture (64-bit Raspberry Pi OS)..."
GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o m17-gateway .
echo "Build completed successfully"
ls -la m17-gateway
file m17-gateway
- name: Make m17-gateway build script executable
run: |
cd cmd/m17-gateway
chmod +x ./packaging/scripts/build-deb.sh
- name: Build m17-gateway .deb package
run: |
cd cmd/m17-gateway
./packaging/scripts/build-deb.sh ${{ steps.version.outputs.VERSION }}
- name: List m17-gateway build artifacts
run: |
cd cmd/m17-gateway
ls -la build/
- name: Upload m17-gateway .deb package
uses: actions/upload-artifact@v4
with:
name: m17-gateway-debian-package
path: cmd/m17-gateway/build/*.deb
- name: Build m17-bridge for Raspberry Pi (ARM64)
run: |
cd cmd/m17-bridge
echo "Building M17 Gateway for ARM64 architecture (64-bit Raspberry Pi OS)..."
GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o m17-bridge .
echo "Build completed successfully"
ls -la m17-bridge
file m17-bridge
- name: Make m17-bridge build script executable
run: |
cd cmd/m17-bridge
chmod +x ./packaging/scripts/build-deb.sh
- name: Build m17-bridge .deb package
run: |
cd cmd/m17-bridge
./packaging/scripts/build-deb.sh ${{ steps.version.outputs.VERSION }}
- name: List m17-bridge build artifacts
run: |
cd cmd/m17-bridge
ls -la build/
- name: Upload m17-bridge .deb package
uses: actions/upload-artifact@v4
with:
name: m17-bridge-debian-package
path: cmd/m17-bridge/build/*.deb
- name: Create Release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v1
with:
files: |
cmd/m17-gateway/build/*.deb
cmd/m17-bridge/build/*.deb
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
test:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Download m17-gateway .deb package
uses: actions/download-artifact@v4
with:
name: m17-gateway-debian-package
path: ./
- name: Test m17-gateway package info
run: |
# Install dpkg tools
sudo apt-get update
sudo apt-get install -y dpkg-dev
# Check package info
DEB_FILE=$(ls m17-gateway*.deb)
echo "Package contents:"
dpkg -c "$DEB_FILE"
echo "Package info:"
dpkg -I "$DEB_FILE"
- name: Download m17-bridge .deb package
uses: actions/download-artifact@v4
with:
name: m17-bridge-debian-package
path: ./
- name: Test m17-bridge package info
run: |
# Install dpkg tools
sudo apt-get update
sudo apt-get install -y dpkg-dev
# Check package info
DEB_FILE=$(ls m17-bridge*.deb)
echo "Package contents:"
dpkg -c "$DEB_FILE"
echo "Package info:"
dpkg -I "$DEB_FILE"