104 lines
4.2 KiB
YAML
104 lines
4.2 KiB
YAML
# 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
|
|
- 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: |
|
|
# set snapshot tag
|
|
OPENOCD_TAG="`git tag --points-at HEAD`"
|
|
[ -z $OPENOCD_TAG ] && OPENOCD_TAG="`git rev-parse --short HEAD`"
|
|
# 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 "ARTIFACT_NAME=$ARTIFACT" >> $GITHUB_ENV
|
|
echo "ARTIFACT_PATH=$PWD/$ARTIFACT" >> $GITHUB_ENV
|
|
- name: Publish OpenOCD packaged for windows
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: ${{ env.ARTIFACT_NAME }}
|
|
path: ${{ env.ARTIFACT_PATH }}
|
|
- name: Get the upload URL for a release
|
|
id: get_release
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
uses: bruceadams/get-release@v1.2.0
|
|
env:
|
|
GITHUB_TOKEN: ${{ github.token }}
|
|
- name: Release OpenOCD packaged for windows
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.get_release.outputs.upload_url }}
|
|
asset_path: ${{ env.ARTIFACT_PATH }}
|
|
asset_name: ${{ env.ARTIFACT_NAME }}
|
|
asset_content_type: application/gzip
|