Skip to content

Commit 49b0b51

Browse files
committed
CI: Build additional RPM and arm64-deb; restructure & clean
1 parent 095ee6c commit 49b0b51

File tree

3 files changed

+219
-93
lines changed

3 files changed

+219
-93
lines changed

.github/workflows/build.yml

Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
name: Build OpenOCD
2+
3+
on:
4+
push:
5+
branches:
6+
- '*'
7+
workflow_dispatch:
8+
9+
jobs:
10+
11+
init:
12+
runs-on: ubuntu-20.04
13+
steps:
14+
- name: Version
15+
id: version
16+
run: |
17+
export VERSION_TMP="$(date +'%Y%m%d.%H%M')"
18+
echo "::set-env name=VERSION::$VERSION_TMP"
19+
echo $VERSION
20+
echo "::set-output name=VERSION::$VERSION_TMP"
21+
- name: Create Release
22+
id: create_release
23+
uses: actions/create-release@v1
24+
env:
25+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26+
with:
27+
tag_name: ${{ env.VERSION }}
28+
release_name: Release ${{ env.VERSION }}
29+
draft: true
30+
prerelease: false
31+
outputs:
32+
version: ${{ steps.version.outputs.VERSION }}
33+
upload_url: ${{ steps.create_release.outputs.upload_url }}
34+
35+
build-deb:
36+
needs: init
37+
runs-on: ubuntu-20.04
38+
steps:
39+
- name: Version
40+
run: |
41+
echo "::set-env name=VERSION::${{ needs.init.outputs.version }}"
42+
echo $VERSION
43+
- name: Setup build environment
44+
run: |
45+
sudo apt-get update
46+
sudo apt-get -y install \
47+
make libtool pkg-config autoconf automake \
48+
texinfo tree libusb-dev libusb-1.0 \
49+
libhidapi-dev libftdi-dev
50+
- name: Check out repository
51+
uses: actions/checkout@v2
52+
- name: Clone OpenOCD repo
53+
run: |
54+
git clone http://openocd.zylin.com/openocd.git
55+
- name: "./bootstrap"
56+
run: |
57+
(cd openocd && ./bootstrap)
58+
- name: "./configure"
59+
run: |
60+
(cd openocd && ./configure --prefix=/opt/openocd \
61+
--enable-ftdi --enable-stlink --enable-ti-icdi \
62+
--enable-ulink --enable-usb-blaster-2 --enable-ft232r \
63+
--enable-vsllink --enable-xds110 --enable-osbdm \
64+
--enable-opendous --enable-aice --enable-usbprog \
65+
--enable-rlink --enable-armjtagew --enable-cmsis-dap \
66+
--enable-kitprog --enable-usb-blaster --enable-presto \
67+
--enable-openjtag --enable-jlink)
68+
- name: Make
69+
run: (cd openocd && make -j8)
70+
- name: Make install
71+
run: (cd openocd && make install)
72+
- name: Debian package
73+
run: |
74+
sed -i s/VERSION/${{ env.VERSION }}/g deb-package/DEBIAN/control
75+
mkdir -p deb-package/opt/openocd
76+
cp -r /opt/openocd/* deb-package/opt/openocd/
77+
sudo chown -R root:root deb-package/opt/openocd/
78+
dpkg-deb --build deb-package
79+
- name: Test package installation
80+
run: sudo apt install ./deb-package.deb
81+
#- name: Debian package artifact
82+
# uses: actions/upload-artifact@v1
83+
# with:
84+
# name: debian-package
85+
# path: deb-package.deb
86+
- name: Upload DEB Release Asset
87+
id: upload-release-asset
88+
uses: actions/upload-release-asset@v1
89+
env:
90+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
91+
with:
92+
upload_url: ${{ needs.init.outputs.upload_url }}
93+
asset_path: ./deb-package.deb
94+
asset_name: openocd-master-${{ env.VERSION }}.amd64.deb
95+
asset_content_type: application/vnd.debian.binary-package
96+
97+
build-rpm:
98+
needs: init
99+
runs-on: ubuntu-20.04
100+
container:
101+
image: rleh/openocd-build-rpm-prerequisites:latest
102+
steps:
103+
- name: Version
104+
run: |
105+
echo "::set-env name=VERSION::${{ needs.init.outputs.version }}"
106+
echo $VERSION
107+
- name: Check out repository
108+
uses: actions/checkout@v2
109+
- name: Prepare RPM build
110+
run: |
111+
mkdir -p ~/rpmbuild/SOURCES ~/rpmbuild/SPECS ~/rpmbuild/BUILD
112+
cp rpm-package/openocd.spec ~/rpmbuild/SPECS/openocd.spec
113+
sed -i s/VERSION/${{ env.VERSION }}/g ~/rpmbuild/SPECS/openocd.spec
114+
- name: Clone OpenOCD repo and run Bootstrap
115+
run: |
116+
(git clone http://openocd.zylin.com/openocd.git openocd-master && cd openocd-master/ && ./bootstrap)
117+
rm -rf openocd-master/.git/
118+
zip -q -r ~/rpmbuild/SOURCES/openocd-master.zip openocd-master
119+
rm -rf openocd-master/
120+
- name: Build RPM from spec file
121+
run: |
122+
cd ~/rpmbuild/SPECS
123+
rpmbuild -ba openocd.spec
124+
ls ~/rpmbuild/RPMS/x86_64/
125+
export RPM_FILE_TMP="$(ls ~/rpmbuild/RPMS/x86_64/)"
126+
echo "::set-env name=RPM_FILE::$RPM_FILE_TMP"
127+
echo $RPM_FILE
128+
#- name: RPM package artifact
129+
# uses: actions/upload-artifact@v2
130+
# with:
131+
# name: rpm-package
132+
# path: ~/rpmbuild/RPMS/x86_64/*.rpm
133+
- name: Upload RPM Release Asset
134+
id: upload-release-asset
135+
uses: actions/upload-release-asset@v1
136+
env:
137+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
138+
with:
139+
upload_url: ${{ needs.init.outputs.upload_url }}
140+
asset_path: /github/home/rpmbuild/RPMS/x86_64/${{ env.RPM_FILE }}
141+
asset_name: ${{ env.RPM_FILE }}
142+
asset_content_type: application/x-rpm
143+
144+
build-deb-arm64:
145+
needs: init
146+
runs-on: ubuntu-20.04
147+
steps:
148+
- name: Version
149+
run: |
150+
echo "::set-env name=VERSION::${{ needs.init.outputs.version }}"
151+
echo $VERSION
152+
- name: Check out repository
153+
uses: actions/checkout@v2
154+
- name: Build on Arm64
155+
uses: uraimo/run-on-arch-action@v2.0.5
156+
id: runcmd
157+
with:
158+
arch: aarch64
159+
distro: ubuntu20.04
160+
githubToken: ${{ github.token }}
161+
run: |
162+
uname -a
163+
echo ::set-output name=uname::$(uname -a)
164+
apt-get update
165+
apt-get -y install make libtool pkg-config autoconf automake texinfo tree libusb-dev libusb-1.0 libhidapi-dev libftdi-dev git build-essential
166+
(git clone http://openocd.zylin.com/openocd.git && cd openocd && ./bootstrap)
167+
(cd openocd && ./configure --prefix=/opt/openocd \
168+
--enable-ftdi --enable-stlink --enable-ti-icdi \
169+
--enable-ulink --enable-usb-blaster-2 --enable-ft232r \
170+
--enable-vsllink --enable-xds110 --enable-osbdm \
171+
--enable-opendous --enable-aice --enable-usbprog \
172+
--enable-rlink --enable-armjtagew --enable-cmsis-dap \
173+
--enable-kitprog --enable-usb-blaster --enable-presto \
174+
--enable-openjtag --enable-jlink)
175+
(cd openocd && make -j8)
176+
(cd openocd && make install)
177+
#cp openocd/contrib/60-openocd.rules /lib/udev/rules.d/60-openocd.rules
178+
sed -i s/VERSION/${{ env.VERSION }}/g deb-package/DEBIAN/control
179+
sed -i s/amd64/arm64/g deb-package/DEBIAN/control
180+
mkdir -p deb-package/opt/openocd
181+
cp -r /opt/openocd/* deb-package/opt/openocd/
182+
chown -R root:root deb-package/opt/openocd/
183+
#mkdir -p deb-package/lib/udev/rules.d
184+
#mkdir -p deb-package/usr/bin
185+
#mkdir -p deb-package/usr/share/doc/openocd
186+
#mkdir -p deb-package/usr/share/doc-base
187+
#mkdir -p deb-package/usr/share/info
188+
#mkdir -p deb-package/usr/share/lintian/overrides
189+
#mkdir -p deb-package/usr/share/man/man1
190+
#mkdir -p deb-package/usr/share/metainfo
191+
#mkdir -p deb-package/usr/share/openocd
192+
#cp -r /lib/udev/rules.d/60-openocd.rules deb-package/lib/udev/rules.d/60-openocd.rules
193+
#cp -r /usr/bin/openocd deb-package/usr/bin/openocd
194+
#cp -r /usr/share/doc/openocd/* deb-package/usr/share/doc/openocd/
195+
#cp -r /usr/share/doc-base/openocd deb-package/usr/share/doc-base/openocd
196+
#cp -r /usr/share/info/openocd.* deb-package/usr/share/info/
197+
#cp -r /usr/share/lintian/overrides/openocd deb-package/usr/share/lintian/overrides/openocd
198+
#cp -r /usr/share/man/man1/openocd.1.gz deb-package/usr/share/man/man1/openocd.1.gz
199+
#cp -r /usr/share/metainfo/org.openocd.metainfo.xml deb-package/usr/share/metainfo/org.openocd.metainfo.xml
200+
#cp -r /usr/share/openocd/* deb-package/usr/share/openocd/
201+
dpkg-deb --build deb-package
202+
apt install ./deb-package.deb
203+
204+
- name: Debian package artifact
205+
uses: actions/upload-artifact@v1
206+
with:
207+
name: debian-package-arm64
208+
path: deb-package.deb
209+
- name: Upload DEB Arm64 Release Asset
210+
id: upload-release-asset
211+
uses: actions/upload-release-asset@v1
212+
env:
213+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
214+
with:
215+
upload_url: ${{ needs.init.outputs.upload_url }}
216+
asset_path: ./deb-package.deb
217+
asset_name: openocd-master-${{ env.VERSION }}.arm64.deb
218+
asset_content_type: application/vnd.debian.binary-package

.github/workflows/openocd-build.yml

Lines changed: 0 additions & 92 deletions
This file was deleted.

deb-package/DEBIAN/control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Version: VERSION
33
Architecture: amd64
44
Maintainer: Raphael Lehmann <raphael+openocdbuild@rleh.de>
55
Installed-Size: 5790
6-
Depends: libc6 (>= 2.15), libftdi1-2 (>= 1.2), libhidapi-hidraw0 (>= 0.8.0~rc1+git20140201.3a66d4e+dfsg), libjaylink0, libjim0.77 (>= 0.73), libusb-0.1-4 (>= 2:0.1.12), libusb-1.0-0 (>= 2:1.0.16)
6+
Depends: libc6 (>= 2.15), libftdi1-2 (>= 1.2), libhidapi-hidraw0 (>= 0.8.0~rc1+git20140201.3a66d4e+dfsg), libjaylink0, libjim0.79 (>= 0.73), libusb-0.1-4 (>= 2:0.1.12), libusb-1.0-0 (>= 2:1.0.16)
77
Section: embedded
88
Priority: optional
99
Homepage: http://openocd.sourceforge.net/

0 commit comments

Comments
 (0)