Alexander Amelkin 38b120eb5a ci: Add Windows/cygwin config
Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2020-07-04 00:26:38 +03:00

123 lines
3.3 KiB
YAML

# vi: set et ts=2 sw=2 :
name: C/C++ CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
ubuntu:
strategy:
matrix:
os: [ ubuntu-16.04, ubuntu-18.04 ]
runs-on: ${{ matrix.os }}
steps:
- name: install dependencies
run: |
sudo apt install \
automake \
gcc \
git \
libssl-dev \
libtool \
make \
wget
# TODO: Add ubuntu-20.04 to the matrix.os list and fix the build
# - name: install extra dependencies
# # In Ubuntu 20.04 some crucial development headers/libraries
# # have been moved from libc6-dev to musl-dev
# if: matrix.os == 'ubuntu-20.04'
# run: sudo apt install musl-dev
- name: install extra libraries
# This build job tries to verify as much of ipmitool code
# as possible, hence these libraries. They aren't usually
# needed for normal user builds:
run: |
sudo apt install \
libsystemd-dev \
libreadline-dev \
libfreeipmi-dev \
libusb-dev
- uses: actions/checkout@v2
- name: bootstrap
run: ./bootstrap
- name: configure
run: |
# For Linux, build as many extra interfaces as possible
# to verify the code
./configure --enable-intf-dummy \
--enable-intf-dbus \
--enable-intf-usb \
--enable-intf-bmc \
--enable-intf-free
- name: make
run: make
- name: make check
run: make check
- name: make distcheck
run: make distcheck
macos-catalina:
runs-on: macos-10.15
steps:
- name: install dependencies
run: brew install automake openssl libtool freeipmi wget
- uses: actions/checkout@v2
- name: bootstrap
run: ./bootstrap
- name: configure
run: |
./configure --enable-intf-dummy \
LDFLAGS=-L/usr/local/opt/openssl@1.1/lib \
CFLAGS=-I/usr/local/opt/openssl@1.1/include
- name: make
run: make
- name: make check
run: make check
- name: make distcheck
run: make distcheck
win-srv-2019:
runs-on: windows-2019
steps:
- name: install dependencies
run: |-
choco install cygwin -y
choco install cyg-get -y
# Line continuation in PowerShell is backtick. Weird as Windows.
cyg-get gcc-g++ `
make `
automake `
autoconf `
m4 `
libtool `
libncurses-devel `
libreadline-devel `
libssl-devel `
unix2dos `
wget
echo "::add-path::C:/tools/cygwin/bin"
echo "::add-path::C:/tools/cygwin/usr/bin"
- uses: actions/checkout@v2
- name: convert line ends
# checkout action on Windows apparently converts line ends
# so we have to convert them back because cygwin bash can't
# can't handle Windows line ends
run: dos2unix bootstrap configure.ac csv-revision
- name: bootstrap
run: bash -c "./bootstrap"
- name: configure
run: bash -c "./configure"
- name: make
run: make
- name: make check
run: make check
- name: make distcheck
run: make distcheck