diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6c8aff1..d22ca96 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,64 +10,69 @@ jobs: 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 Cygwin Git and cygport uses: cygwin/cygwin-install-action@v2 with: - packages: git cygport - timeout-minutes: 10 + packages: > + git 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 + - name: Checkout cygport 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 + repository: cygwin/cygport + path: cygport + ref: ${{ matrix.cygport-ref }} + submodules: true timeout-minutes: 1 - - name: Load variables from the cygport file + - name: Build cygport 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 + cd cygport + meson _build + ninja -C _build + - name: Tar up cygport build results if: always() - uses: actions/upload-artifact@v3 - with: - name: cygwin-logs - 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-*-*.*/ + run: tar -caf cygport-build-results-${{ matrix.cygport-ref }}.txz --exclude-vcs cygport timeout-minutes: 10 - - name: Store build results + - name: Store cygport build results if: always() uses: actions/upload-artifact@v3 with: - name: build-results - path: git-build-results.txz + name: cygport-${{ matrix.cygport-ref }} + path: cygport-build-results-${{ matrix.cygport-ref }}.txz if-no-files-found: error - timeout-minutes: 5 + timeout-minutes: 10