Use github actions for automated builds (#627)
* Copy snapshot workflow from mainline. Travis died. We need something that checks OpenOCD builds. Change-Id: I7c018caaa3a13884fc526733271697bc90edc891 Signed-off-by: Tim Newsome <tim@sifive.com> * Run checkpatch like we used to do with travis. Nervous about this because upstream often messes things up. Change-Id: I0ca0229ea2bd4422d7ffe4800e8861acc716cf56 Signed-off-by: Tim Newsome <tim@sifive.com> * Fetch more, install filterdiff. Change-Id: I8cca61c5adc91b845619f2cc89accbb5217ce73a Signed-off-by: Tim Newsome <tim@sifive.com> * It's patchutils, not filterdiff. Change-Id: I2afe78bc4153462283a61571e15ee147f9f20b10 Signed-off-by: Tim Newsome <tim@sifive.com> * Fetch more revisions. Change-Id: Ieb5269494721f7b78d93d67c502203f1b1fbbba7 Signed-off-by: Tim Newsome <tim@sifive.com> * gnulib no longer exists. Change-Id: I97fc797c99f19f6b504952f7cb9c7072181c1e72 Signed-off-by: Tim Newsome <tim@sifive.com> * Working on Linux build. Change-Id: I6b70fbf5bd2dbb5f1540d0d929310b29b312566e Signed-off-by: Tim Newsome <tim@sifive.com> * Don't actually publish any artifacts. Change-Id: Ic363744e0530288f3f78268d1becfbfb6b47b505 Signed-off-by: Tim Newsome <tim@sifive.com> * Add 32-bit build? Change-Id: I44866e0da539db7b8e3bd0536d305bee0595a301 Signed-off-by: Tim Newsome <tim@sifive.com> * Fix environment. Change-Id: I19c3ef2cc886350db243a07185d2441ca9328dfa Signed-off-by: Tim Newsome <tim@sifive.com> * Fix syntax error. Change-Id: I80ba08d9929d4c2f0e57b393b6b53462202f5bce Signed-off-by: Tim Newsome <tim@sifive.com> * More syntax error. Change-Id: I24c5270683626b7007f9c100f1a36c9fa28a3405 Signed-off-by: Tim Newsome <tim@sifive.com> * Shooting in the dark trying to fix problem. Change-Id: Iecb3dc67ec6a0b932167b65dd0a5b82da9a1518f Signed-off-by: Tim Newsome <tim@sifive.com> * More syntax fixing. Change-Id: I01f014f38e742b9a6c0d7c2e5b31058536572506 Signed-off-by: Tim Newsome <tim@sifive.com> * Install clang. Signed-off-by: Tim Newsome <tim@sifive.com> Change-Id: I1d6828554ade149f7319f0797238a4e23f073a25 * Store config.log Change-Id: I8275341de2c042ef32c6d57687c420b6dc53c8ab Signed-off-by: Tim Newsome <tim@sifive.com> * Install gcc-multilib Change-Id: I08f233f58f3a4cbc89ae5dd0314d99319bf5724c Signed-off-by: Tim Newsome <tim@sifive.com> * Check final executable. Intentionally supposed to fail. Change-Id: I003dba85e766e3cf3ef4d6925d96f5b09a9fe80f Signed-off-by: Tim Newsome <tim@sifive.com> * All done! Change-Id: I37ed2142082fdbce01157e0989c4e2122229abb7 Signed-off-by: Tim Newsome <tim@sifive.com>
This commit is contained in:
parent
c53db4c2cb
commit
f30837f04c
|
@ -0,0 +1,21 @@
|
|||
on: push
|
||||
|
||||
name: Check Code Style
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
DL_DIR: ../downloads
|
||||
BUILD_DIR: ../build
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 50
|
||||
- run: sudo apt-get install patchutils
|
||||
- name: Run checkpatch
|
||||
run: |
|
||||
git diff -U20 HEAD~40 | \
|
||||
filterdiff -x "a/src/jtag/drivers/libjaylink/*" -x "a/tools/git2cl/*" | \
|
||||
./tools/scripts/checkpatch.pl --no-signoff -
|
|
@ -0,0 +1,34 @@
|
|||
on: push
|
||||
|
||||
name: Linux Build
|
||||
|
||||
jobs:
|
||||
# 32-bit, clang
|
||||
build32:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
CFLAGS: -m32
|
||||
CC: clang
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v2
|
||||
- run: sudo apt-get install clang gcc-multilib
|
||||
- run: ./bootstrap
|
||||
- run: ./configure --enable-remote-bitbang --enable-jtag_vpi --disable-target64
|
||||
- run: make
|
||||
- run: file src/openocd | grep 32-bit
|
||||
|
||||
|
||||
# 64-bit, gcc
|
||||
build64:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
CFLAGS: -m64
|
||||
CC: gcc
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v2
|
||||
- run: ./bootstrap
|
||||
- run: ./configure --enable-remote-bitbang --enable-jtag_vpi
|
||||
- run: make
|
||||
- run: file src/openocd | grep 64-bit
|
|
@ -0,0 +1,89 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Copyright (C) 2020 by Tarek BOUCHKATI <tarek.bouchkati@gmail.com>
|
||||
|
||||
on: push
|
||||
|
||||
name: OpenOCD Snapshot
|
||||
|
||||
jobs:
|
||||
package:
|
||||
runs-on: [ubuntu-18.04]
|
||||
env:
|
||||
DL_DIR: ../downloads
|
||||
BUILD_DIR: ../build
|
||||
steps:
|
||||
- name: Install needed packages
|
||||
run: sudo apt-get install autotools-dev autoconf automake libtool pkg-config cmake texinfo texlive g++-mingw-w64-i686
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v1
|
||||
- run: ./bootstrap
|
||||
- name: Prepare libusb1
|
||||
env:
|
||||
LIBUSB1_VER: 1.0.23
|
||||
run: |
|
||||
mkdir -p $DL_DIR && cd $DL_DIR
|
||||
wget "https://github.com/libusb/libusb/releases/download/v${LIBUSB1_VER}/libusb-${LIBUSB1_VER}.tar.bz2"
|
||||
tar -xjf libusb-${LIBUSB1_VER}.tar.bz2
|
||||
echo "LIBUSB1_SRC=$PWD/libusb-${LIBUSB1_VER}" >> $GITHUB_ENV
|
||||
- name: Prepare hidapi
|
||||
env:
|
||||
HIDAPI_VER: 0.9.0
|
||||
run: |
|
||||
mkdir -p $DL_DIR && cd $DL_DIR
|
||||
wget "https://github.com/libusb/hidapi/archive/hidapi-${HIDAPI_VER}.tar.gz"
|
||||
tar -xzf hidapi-${HIDAPI_VER}.tar.gz
|
||||
cd hidapi-hidapi-${HIDAPI_VER}
|
||||
./bootstrap
|
||||
echo "HIDAPI_SRC=$PWD" >> $GITHUB_ENV
|
||||
- name: Prepare libftdi
|
||||
env:
|
||||
LIBFTDI_VER: 1.4
|
||||
run: |
|
||||
mkdir -p $DL_DIR && cd $DL_DIR
|
||||
wget "http://www.intra2net.com/en/developer/libftdi/download/libftdi1-${LIBFTDI_VER}.tar.bz2"
|
||||
tar -xjf libftdi1-${LIBFTDI_VER}.tar.bz2
|
||||
echo "LIBFTDI_SRC=$PWD/libftdi1-${LIBFTDI_VER}" >> $GITHUB_ENV
|
||||
- name: Prepare capstone
|
||||
env:
|
||||
CAPSTONE_VER: 4.0.2
|
||||
run: |
|
||||
mkdir -p $DL_DIR && cd $DL_DIR
|
||||
CAPSTONE_NAME=${CAPSTONE_VER}
|
||||
CAPSTONE_FOLDER=capstone-${CAPSTONE_VER}
|
||||
wget "https://github.com/aquynh/capstone/archive/${CAPSTONE_VER}.tar.gz"
|
||||
tar -xzf ${CAPSTONE_VER}.tar.gz
|
||||
echo "CAPSTONE_SRC=$PWD/capstone-${CAPSTONE_VER}" >> $GITHUB_ENV
|
||||
- name: Package OpenOCD for windows
|
||||
env:
|
||||
MAKE_JOBS: 2
|
||||
HOST: i686-w64-mingw32
|
||||
LIBUSB1_CONFIG: --enable-shared --enable-static
|
||||
HIDAPI_CONFIG: --enable-shared --disable-static --disable-testgui
|
||||
LIBFTDI_CONFIG: "-DCMAKE_TOOLCHAIN_FILE='${{ env.LIBFTDI_SRC }}/cmake/Toolchain-i686-w64-mingw32.cmake' -DBUILD_TESTS:BOOL=off -DFTDIPP:BOOL=off -DPYTHON_BINDINGS:BOOL=off -DEXAMPLES:BOOL=off -DDOCUMENTATION:BOOL=off -DFTDI_EEPROM:BOOL=off"
|
||||
CAPSTONE_CONFIG: "CAPSTONE_BUILD_CORE_ONLY=yes CAPSTONE_STATIC=yes CAPSTONE_SHARED=no"
|
||||
run: |
|
||||
# check if there is tag pointing at HEAD, otherwise take the HEAD SHA-1 as OPENOCD_TAG
|
||||
OPENOCD_TAG="`git tag --points-at HEAD`"
|
||||
[ -z $OPENOCD_TAG ] && OPENOCD_TAG="`git rev-parse --short HEAD`"
|
||||
# check if there is tag pointing at HEAD, if so the release will have the same name as the tag,
|
||||
# otherwise it will be named 'latest'
|
||||
RELEASE_NAME="`git tag --points-at HEAD`"
|
||||
[ -z $RELEASE_NAME ] && RELEASE_NAME="latest"
|
||||
[[ $RELEASE_NAME = "latest" ]] && IS_PRE_RELEASE="true" || IS_PRE_RELEASE="false"
|
||||
# set env and call cross-build.sh
|
||||
export OPENOCD_TAG=$OPENOCD_TAG
|
||||
export OPENOCD_SRC=$PWD
|
||||
export OPENOCD_CONFIG=""
|
||||
mkdir -p $BUILD_DIR && cd $BUILD_DIR
|
||||
bash $OPENOCD_SRC/contrib/cross-build.sh $HOST
|
||||
# add missing dlls
|
||||
cd $HOST-root/usr
|
||||
cp `$HOST-gcc --print-file-name=libwinpthread-1.dll` ./bin/
|
||||
cp `$HOST-gcc --print-file-name=libgcc_s_sjlj-1.dll` ./bin/
|
||||
# prepare the artifact
|
||||
ARTIFACT="openocd-${OPENOCD_TAG}-${HOST}.tar.gz"
|
||||
tar -czf $ARTIFACT *
|
||||
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
|
||||
echo "IS_PRE_RELEASE=$IS_PRE_RELEASE" >> $GITHUB_ENV
|
||||
echo "ARTIFACT_PATH=$PWD/$ARTIFACT" >> $GITHUB_ENV
|
Loading…
Reference in New Issue