Skip to content

Add git build and test steps back #366

Add git build and test steps back

Add git build and test steps back #366

Workflow file for this run

name: CI
on: [push, pull_request]
jobs:
build-test:
runs-on: windows-latest
permissions:
contents: write
defaults:
run:
shell: bash --noprofile --norc -e -o pipefail -o igncr {0}
env:
PATH: C:\cygwin\bin
strategy:
matrix:
cygport-ref:
- 0.36.1
- 19ad61efd6214e9430e31d5770d251aea4e2d815
- 9b231ea1cdacfa9324d66ce6af7f07332e865551
- 8b33f707c37f2673337b2509b96529896137cd51
- d31026b6ab1e7c0d4c2ae07ebe401d02806f8b4b
- 30e796755b065d2c3dbeac9418dace745b99cbfd
- c72a663e3c22783e5fba3d0f677a88782c7de917
- 78e5db7ec667d5c25d11370666c4a0fe63f715fe
- 0.36.2
fail-fast: false
steps:
- name: Install Git, cygport, and packages for building cygport
uses: cygwin/cygwin-install-action@v2
with:
packages: >
git cygport R aspell automake bison cmake cvs diffstat dos2unix
extra-cmake-modules flex flexdll fontforge gcc-g++ git
git-archive-all gnome-common gobject-introspection help2man
httpd-devel kf5-kdoctools libGL-devel libGeoIP-devel
libKF5XmlGui-devel libQt5Core-devel libQt5Svg-devel
libQtCore4-devel libQtGui4-devel libQtNetwork4-devel
libQtTest4-devel libQtXml4-devel libRmath libbz2-devel
libcairomm1.0-devel libcrypt-devel libgdk_pixbuf2.0-devel
libgirepository1.0-devel libglibmm2.4-devel libicu-devel
liblua-devel liblzma-devel libnotify-devel libpango1.0-devel
libpcre2-devel libqca-devel libqca-qt5-devel libtirpc-devel
libxfce4ui1-devel libxfconf0-devel lndir lua make mate-common
mercurial meson mingw64-i686-gcc-core mingw64-i686-qt5-base
mingw64-i686-qt5-tools mm-common monotone ninja ocaml ocaml-dune
ocaml-findlib patch perl perl-Module-Build php-PEAR python38-devel
python27-wheel python37-pip python37-setuptools python37-wheel
python38-pip python38-setuptools python38-wheel python38-pygments
python39-pip python39-setuptools python39-wheel robodoc ruby
ruby-rack subversion unzip xfce4-dev-tools xfce4-panel-devel
timeout-minutes: 30
- name: Manually configure safe.directory
run: git config --global --add safe.directory '*'
timeout-minutes: 1
- name: Checkout cygport
uses: actions/checkout@v3
with:
repository: cygwin/cygport
path: cygport
ref: ${{ matrix.cygport-ref }}
set-safe-directory: false # actions/checkout otherwise tries to use the wrong config file, per actions/checkout#767
timeout-minutes: 1
# Safe directory handling doesn't seem to work for submodules, so just handle those manually.
- name: Checkout submodules
run: |
cd cygport
git submodule update --init --force --recursive
- name: Build cygport
run: |
cd cygport
meson _build
ninja -C _build
- name: Install the local cygport build
run: |
cd cygport
cp _build/bin/cygport /usr/bin/cygport
cp data/gnuconfig/config.guess data/gnuconfig/config.sub /usr/share/cygport/
cp lib/*.cygpart /usr/share/cygport/lib/
cp cygclass/*.cygclass /usr/share/cygport/cygclass/
cp data/mirrors /usr/share/cygport/mirrors
cp tools/deb2targz tools/pkgrip tools/sysrootize /usr/share/cygport/tools/
- name: Tar up cygport build results
if: always()
run: tar -caf cygport-build-results-${{ matrix.cygport-ref }}.txz --exclude-vcs cygport
timeout-minutes: 10
- name: Store cygport build results
if: always()
uses: actions/upload-artifact@v3
with:
name: cygport-${{ matrix.cygport-ref }}
path: cygport-build-results-${{ matrix.cygport-ref }}.txz
if-no-files-found: error
timeout-minutes: 10
- name: Checkout
uses: actions/checkout@v3
with:
set-safe-directory: false # actions/checkout otherwise tries to use the wrong config file, per actions/checkout#767
fetch-depth: 0 # Need this to push to Cygwin Git mirror
timeout-minutes: 1
- name: Load variables from the cygport file
run: |
eval "$(cygport git.cygport vars BUILD_REQUIRES PVR)"
printf 'BUILD_REQUIRES=%s\n' "$BUILD_REQUIRES" >>"$GITHUB_ENV"
printf 'PVR=%s\n' "$PVR" >>"$GITHUB_ENV"
timeout-minutes: 1
- name: Install Cygwin build requirements
uses: cygwin/cygwin-install-action@v2
with:
packages: ${{ env.BUILD_REQUIRES }}
timeout-minutes: 30
- name: Generate cygcheck output
if: always()
run: cygcheck -srv >/var/log/cygcheck.out
timeout-minutes: 5
- name: Store Cygwin logs
if: always()
uses: actions/upload-artifact@v3
with:
name: cygwin-logs-${{ matrix.cygport-ref }}
path: 'C:\cygwin\var\log\'
timeout-minutes: 5
- name: Cygport download
run: cygport git.cygport download
timeout-minutes: 5
- name: Cygport prep
run: cygport git.cygport prep
timeout-minutes: 1
- name: Cygport compile
run: cygport git.cygport compile
timeout-minutes: 30
- name: Cygport test
run: cygport git.cygport test
timeout-minutes: 300
- name: Tar up build results
if: always()
run: tar -caf git-build-results.txz git-*-*.*/
timeout-minutes: 10
- name: Store build results
if: always()
uses: actions/upload-artifact@v3
with:
name: build-results-${{ matrix.cygport-ref }}
path: git-build-results.txz
if-no-files-found: error
timeout-minutes: 5