diff options
author | Tim Newsome <tim@sifive.com> | 2021-07-12 11:21:46 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-12 11:21:46 -0700 |
commit | f30837f04ce1c3203ebd32f11baa2277f597550b (patch) | |
tree | d4846460e85370d44f2c2a44728d0d334260cb52 /.github | |
parent | c53db4c2cb873d2bd50a7b0cd5e322f8fa44e0df (diff) | |
download | riscv-openocd-f30837f04ce1c3203ebd32f11baa2277f597550b.zip riscv-openocd-f30837f04ce1c3203ebd32f11baa2277f597550b.tar.gz riscv-openocd-f30837f04ce1c3203ebd32f11baa2277f597550b.tar.bz2 |
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>
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/checkpatch.yml | 21 | ||||
-rw-r--r-- | .github/workflows/linux-build.yml | 34 | ||||
-rw-r--r-- | .github/workflows/snapshot.yml | 89 |
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 |