aboutsummaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/checkpatch.yml21
-rw-r--r--.github/workflows/linux-build.yml34
-rw-r--r--.github/workflows/snapshot.yml89
3 files changed, 144 insertions, 0 deletions
diff --git a/.github/workflows/checkpatch.yml b/.github/workflows/checkpatch.yml
new file mode 100644
index 0000000..4ed0a05
--- /dev/null
+++ b/.github/workflows/checkpatch.yml
@@ -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 -
diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml
new file mode 100644
index 0000000..53858a8
--- /dev/null
+++ b/.github/workflows/linux-build.yml
@@ -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
diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml
new file mode 100644
index 0000000..389099f
--- /dev/null
+++ b/.github/workflows/snapshot.yml
@@ -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