Skip to content

Commit

Permalink
CI: Build additional RPM and arm64-deb; restructure & clean
Browse files Browse the repository at this point in the history
  • Loading branch information
rleh committed Sep 26, 2020
1 parent 095ee6c commit c4c569b
Show file tree
Hide file tree
Showing 3 changed files with 219 additions and 93 deletions.
218 changes: 218 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
name: Build OpenOCD

on:
push:
branches:
- '*'
workflow_dispatch:

jobs:

init:
runs-on: ubuntu-20.04
steps:
- name: Version
id: version
run: |
export VERSION_TMP="$(date +'%Y%m%d.%H%M')"
echo "::set-env name=VERSION::$VERSION_TMP"
echo $VERSION
echo "::set-output name=VERSION::$VERSION_TMP"
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.VERSION }}
release_name: Release ${{ env.VERSION }}
draft: true
prerelease: false
outputs:
version: ${{ steps.version.outputs.VERSION }}
upload_url: ${{ steps.create_release.outputs.upload_url }}

build-deb:
needs: init
runs-on: ubuntu-20.04
steps:
- name: Version
run: |
echo "::set-env name=VERSION::${{ needs.init.outputs.version }}"
echo $VERSION
- name: Setup build environment
run: |
sudo apt-get update
sudo apt-get -y install \
make libtool pkg-config autoconf automake \
texinfo tree libusb-dev libusb-1.0 \
libhidapi-dev libftdi-dev
- name: Check out repository
uses: actions/checkout@v2
- name: Clone OpenOCD repo
run: |
git clone http://openocd.zylin.com/openocd.git
- name: "./bootstrap"
run: |
(cd openocd && ./bootstrap)
- name: "./configure"
run: |
(cd openocd && ./configure --prefix=/opt/openocd \
--enable-ftdi --enable-stlink --enable-ti-icdi \
--enable-ulink --enable-usb-blaster-2 --enable-ft232r \
--enable-vsllink --enable-xds110 --enable-osbdm \
--enable-opendous --enable-aice --enable-usbprog \
--enable-rlink --enable-armjtagew --enable-cmsis-dap \
--enable-kitprog --enable-usb-blaster --enable-presto \
--enable-openjtag --enable-jlink)
- name: Make
run: (cd openocd && make -j8)
- name: Make install
run: (cd openocd && make install)
- name: Debian package
run: |
sed -i s/VERSION/${{ env.VERSION }}/g deb-package/DEBIAN/control
mkdir -p deb-package/opt/openocd
cp -r /opt/openocd/* deb-package/opt/openocd/
sudo chown -R root:root deb-package/opt/openocd/
dpkg-deb --build deb-package
- name: Test package installation
run: sudo apt-get -y install ./deb-package.deb
#- name: Debian package artifact
# uses: actions/upload-artifact@v1
# with:
# name: debian-package
# path: deb-package.deb
- name: Upload DEB Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.init.outputs.upload_url }}
asset_path: ./deb-package.deb
asset_name: openocd-master-${{ env.VERSION }}.amd64.deb
asset_content_type: application/vnd.debian.binary-package

build-rpm:
needs: init
runs-on: ubuntu-20.04
container:
image: rleh/openocd-build-rpm-prerequisites:latest
steps:
- name: Version
run: |
echo "::set-env name=VERSION::${{ needs.init.outputs.version }}"
echo $VERSION
- name: Check out repository
uses: actions/checkout@v2
- name: Prepare RPM build
run: |
mkdir -p ~/rpmbuild/SOURCES ~/rpmbuild/SPECS ~/rpmbuild/BUILD
cp rpm-package/openocd.spec ~/rpmbuild/SPECS/openocd.spec
sed -i s/VERSION/${{ env.VERSION }}/g ~/rpmbuild/SPECS/openocd.spec
- name: Clone OpenOCD repo and run Bootstrap
run: |
(git clone http://openocd.zylin.com/openocd.git openocd-master && cd openocd-master/ && ./bootstrap)
rm -rf openocd-master/.git/
zip -q -r ~/rpmbuild/SOURCES/openocd-master.zip openocd-master
rm -rf openocd-master/
- name: Build RPM from spec file
run: |
cd ~/rpmbuild/SPECS
rpmbuild -ba openocd.spec
ls ~/rpmbuild/RPMS/x86_64/
export RPM_FILE_TMP="$(ls ~/rpmbuild/RPMS/x86_64/)"
echo "::set-env name=RPM_FILE::$RPM_FILE_TMP"
echo $RPM_FILE
#- name: RPM package artifact
# uses: actions/upload-artifact@v2
# with:
# name: rpm-package
# path: ~/rpmbuild/RPMS/x86_64/*.rpm
- name: Upload RPM Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.init.outputs.upload_url }}
asset_path: /github/home/rpmbuild/RPMS/x86_64/${{ env.RPM_FILE }}
asset_name: ${{ env.RPM_FILE }}
asset_content_type: application/x-rpm

build-deb-arm64:
needs: init
runs-on: ubuntu-20.04
steps:
- name: Version
run: |
echo "::set-env name=VERSION::${{ needs.init.outputs.version }}"
echo $VERSION
- name: Check out repository
uses: actions/checkout@v2
- name: Build on Arm64
uses: uraimo/run-on-arch-action@v2.0.5
id: runcmd
with:
arch: aarch64
distro: ubuntu20.04
githubToken: ${{ github.token }}
run: |
uname -a
echo ::set-output name=uname::$(uname -a)
apt-get update
apt-get -y install make libtool pkg-config autoconf automake texinfo tree libusb-dev libusb-1.0 libhidapi-dev libftdi-dev git build-essential
(git clone http://openocd.zylin.com/openocd.git && cd openocd && ./bootstrap)
(cd openocd && ./configure --prefix=/opt/openocd \
--enable-ftdi --enable-stlink --enable-ti-icdi \
--enable-ulink --enable-usb-blaster-2 --enable-ft232r \
--enable-vsllink --enable-xds110 --enable-osbdm \
--enable-opendous --enable-aice --enable-usbprog \
--enable-rlink --enable-armjtagew --enable-cmsis-dap \
--enable-kitprog --enable-usb-blaster --enable-presto \
--enable-openjtag --enable-jlink)
(cd openocd && make -j8)
(cd openocd && make install)
#cp openocd/contrib/60-openocd.rules /lib/udev/rules.d/60-openocd.rules
sed -i s/VERSION/${{ env.VERSION }}/g deb-package/DEBIAN/control
sed -i s/amd64/arm64/g deb-package/DEBIAN/control
mkdir -p deb-package/opt/openocd
cp -r /opt/openocd/* deb-package/opt/openocd/
chown -R root:root deb-package/opt/openocd/
#mkdir -p deb-package/lib/udev/rules.d
#mkdir -p deb-package/usr/bin
#mkdir -p deb-package/usr/share/doc/openocd
#mkdir -p deb-package/usr/share/doc-base
#mkdir -p deb-package/usr/share/info
#mkdir -p deb-package/usr/share/lintian/overrides
#mkdir -p deb-package/usr/share/man/man1
#mkdir -p deb-package/usr/share/metainfo
#mkdir -p deb-package/usr/share/openocd
#cp -r /lib/udev/rules.d/60-openocd.rules deb-package/lib/udev/rules.d/60-openocd.rules
#cp -r /usr/bin/openocd deb-package/usr/bin/openocd
#cp -r /usr/share/doc/openocd/* deb-package/usr/share/doc/openocd/
#cp -r /usr/share/doc-base/openocd deb-package/usr/share/doc-base/openocd
#cp -r /usr/share/info/openocd.* deb-package/usr/share/info/
#cp -r /usr/share/lintian/overrides/openocd deb-package/usr/share/lintian/overrides/openocd
#cp -r /usr/share/man/man1/openocd.1.gz deb-package/usr/share/man/man1/openocd.1.gz
#cp -r /usr/share/metainfo/org.openocd.metainfo.xml deb-package/usr/share/metainfo/org.openocd.metainfo.xml
#cp -r /usr/share/openocd/* deb-package/usr/share/openocd/
dpkg-deb --build deb-package
apt-get -y install ./deb-package.deb
- name: Debian package artifact
uses: actions/upload-artifact@v1
with:
name: debian-package-arm64
path: deb-package.deb
- name: Upload DEB Arm64 Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.init.outputs.upload_url }}
asset_path: ./deb-package.deb
asset_name: openocd-master-${{ env.VERSION }}.arm64.deb
asset_content_type: application/vnd.debian.binary-package
92 changes: 0 additions & 92 deletions .github/workflows/openocd-build.yml

This file was deleted.

2 changes: 1 addition & 1 deletion deb-package/DEBIAN/control
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Version: VERSION
Architecture: amd64
Maintainer: Raphael Lehmann <raphael+openocdbuild@rleh.de>
Installed-Size: 5790
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)
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)
Section: embedded
Priority: optional
Homepage: http://openocd.sourceforge.net/
Expand Down

0 comments on commit c4c569b

Please sign in to comment.