diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index dfcee3fb7..5d1a36319 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -320,3 +320,38 @@ jobs: shell: bash run: | test/run-tests.sh + + cygwin: + strategy: + matrix: + bits: [32, 64] + include: + - bits: 32 + arch: x86 + - bits: 64 + arch: x86_x64 + fail-fast: false + runs-on: windows-2019 + steps: + - name: Checkout repo + uses: actions/checkout@v4 + - name: Setup Cygwin + uses: cygwin/cygwin-install-action@v4 + with: + platform: ${{ matrix.arch }} + packages: >- + bison + gcc-core + git + libpng-devel + make + pkg-config + - name: Build & install using Make + run: | + PATH="/usr/bin:$(cygpath "${SYSTEMROOT}")/System32" + make develop -kj Q= + make install -j Q= + - name: Run tests + run: | + PATH="/usr/bin:$(cygpath "${SYSTEMROOT}")/System32" + test/run-tests.sh --only-internal diff --git a/test/run-tests.sh b/test/run-tests.sh index d4a226893..e82094287 100755 --- a/test/run-tests.sh +++ b/test/run-tests.sh @@ -6,13 +6,15 @@ cd "$(dirname "$0")" usage() { echo "Runs regression tests on RGBDS." echo "Options:" - echo " -h, --help show this help message" - echo " --only-free skip tests that build nonfree codebases" + echo " -h, --help show this help message" + echo " --only-free skip tests that build nonfree codebases" + echo " --only-internal skip tests that build external codebases" } # Parse options in pure Bash because macOS `getopt` is stuck # in what util-linux `getopt` calls `GETOPT_COMPATIBLE` mode nonfree=true +external=true FETCH_TEST_DEPS="fetch-test-deps.sh" while [[ $# -gt 0 ]]; do case "$1" in @@ -24,6 +26,9 @@ while [[ $# -gt 0 ]]; do nonfree=false FETCH_TEST_DEPS="fetch-test-deps.sh --only-free" ;; + --only-internal) + external=false + ;; --) break ;; @@ -49,6 +54,10 @@ for dir in asm link fix gfx; do popd done +if ! "$external"; then + exit +fi + # Test some significant external projects that use RGBDS # When adding new ones, don't forget to add them to the .gitignore! # When updating subprojects, change the commit being checked out, and set the `shallow-since`