Add git build and test steps back #366
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |