newlib-cygwin/.github/workflows/cygwin.yml

113 lines
3.4 KiB
YAML

name: cygwin
on: push
jobs:
fedora-build:
runs-on: ubuntu-latest
container: fedora:latest
strategy:
fail-fast: false
matrix:
include:
- target: x86_64-pc-cygwin
pkgarch: 64
- target: i686-pc-cygwin
pkgarch: 32
name: Fedora cross ${{ matrix.target }}
steps:
- uses: actions/checkout@v2
# install build tools
- run: dnf install -y autoconf automake make patch perl
- run: dnf install -y mingw${{ matrix.pkgarch }}-gcc-c++ mingw${{ matrix.pkgarch }}-winpthreads-static mingw${{ matrix.pkgarch }}-zlib-static
# enable 'dnf copr'
- run: dnf install -y dnf-plugins-core
# cocom isn't packaged in Fedora, so we install from a copr
- run: dnf copr enable -y jturney/cocom
- run: dnf install -y cocom
# install cross-cygwin toolchain and libs from copr
- run: dnf copr enable -y yselkowitz/cygwin
- run: dnf install -y cygwin${{ matrix.pkgarch }}-gcc-c++ cygwin${{ matrix.pkgarch }}-gettext cygwin${{ matrix.pkgarch }}-libbfd cygwin${{ matrix.pkgarch }}-libiconv cygwin${{ matrix.pkgarch }}-zlib
# install doc tools
- run: dnf install -y dblatex docbook2X docbook-xsl xmlto
- run: dnf install -y python3 python3-lxml python3-ply
# build
- run: mkdir build install
- run: cd winsup && ./autogen.sh
- run: cd build && ../configure --target=${{ matrix.target }} --prefix=$(realpath $(pwd)/../install)
- run: make -C build
- run: make -C build/*/newlib info man
- run: make -C build install
- run: make -C build/*/newlib install-info install-man
windows-build:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include:
- pkgarch: x86_64
- pkgarch: i686
name: Windows native ${{ matrix.pkgarch }}
steps:
# checkout action uses the native git (we can avoid this messing up line
# endings, but this could still be dangerous e.g if we need symlinks in the
# repo)
- run: git config --global core.autocrlf input
- uses: actions/checkout@v2
# install cygwin and build tools
- name: Install Cygwin
uses: cygwin/cygwin-install-action@master
with:
platform: ${{ matrix.pkgarch }}
packages: >-
autoconf,
automake,
cocom,
dblatex,
dejagnu,
docbook-xml45,
docbook-xsl,
docbook2X,
gcc-g++,
gettext-devel,
libiconv,
libiconv-devel,
make,
mingw64-${{ matrix.pkgarch }}-gcc-g++,
mingw64-${{ matrix.pkgarch }}-zlib,
patch,
perl,
python38-lxml,
python38-ply,
texlive-collection-fontsrecommended,
texlive-collection-latexrecommended,
texlive-collection-pictures,
xmlto,
zlib-devel
# build
- name: Build Cygwin
run: >-
export PATH=/usr/bin:$(cygpath ${SYSTEMROOT})/system32 &&
mkdir build install &&
(cd winsup; ./autogen.sh) &&
cd build &&
../configure --prefix=$(realpath $(pwd)/../install) -v &&
export MAKEFLAGS=-j$(ncores) &&
make &&
make install &&
(cd */newlib; make info man) &&
(cd */newlib; make install-info install-man) &&
(cd */winsup; test "${{ matrix.pkgarch }}" != 'x86_64' || make check || true)
shell: C:\cygwin\bin\bash.exe --noprofile --norc -eo pipefail '{0}'