]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
ci: add support for cygwin-gcc to the github CI script
authorDustin L. Howett <dustin@howett.net>
Thu, 28 May 2026 21:47:56 +0000 (16:47 -0500)
committerDustin L. Howett <dustin@howett.net>
Mon, 1 Jun 2026 10:37:43 +0000 (05:37 -0500)
build/ci/github_actions/ci.cmd

index 1d80cc5d98bf82b12672f41a24dc0dd0c1008e17..565beab6c43efa79f99df41b2ea8b94eb5135cfc 100755 (executable)
@@ -4,8 +4,10 @@ SET BZIP2_VERSION=1ea1ac188ad4b9cb662e3f8314673c63df95a589
 SET XZ_VERSION=5.6.3
 IF NOT "%BE%"=="mingw-gcc" (
   IF NOT "%BE%"=="msvc" (
-    ECHO Environment variable BE must be mingw-gcc or msvc
-    EXIT /b 1
+    IF NOT "%BE%"=="cygwin-gcc"  (
+      ECHO Environment variable BE must be cygwin-gcc, mingw-gcc or msvc
+      EXIT /b 1
+    )
   )
 )
 
@@ -24,6 +26,11 @@ IF "%BE%"=="mingw-gcc" (
 )
 
 IF "%1"=="deplibs" (
+  IF "%BE%"=="cygwin-gcc" (
+    ECHO Library dependencies satisfied by Cygwin install
+    EXIT /b 0
+  )
+
   IF NOT EXIST build_ci\libs (
     MKDIR build_ci\libs
   )
@@ -121,6 +128,10 @@ IF "%1"=="deplibs" (
     MKDIR build_ci\cmake
     CD build_ci\cmake
     cmake -G "Visual Studio 17 2022" -D CMAKE_BUILD_TYPE="Release" -D ZLIB_LIBRARY="C:/Program Files (x86)/zlib/lib/zlibstatic.lib" -D ZLIB_INCLUDE_DIR="C:/Program Files (x86)/zlib/include" -D BZIP2_LIBRARIES="C:/Program Files (x86)/bzip2/lib/bz2_static.lib" -D BZIP2_INCLUDE_DIR="C:/Program Files (x86)/bzip2/include" -D LIBLZMA_LIBRARY="C:/Program Files (x86)/xz/lib/lzma.lib" -D LIBLZMA_INCLUDE_DIR="C:/Program Files (x86)/xz/include" -D ZSTD_LIBRARY="C:/Program Files (x86)/zstd/lib/zstd_static.lib" -D ZSTD_INCLUDE_DIR="C:/Program Files (x86)/zstd/include" ..\.. || EXIT /b 1
+  ) ELSE IF "%BE%"=="cygwin-gcc" (
+    SET BS=cmake
+    SET CYGWIN_NOWINPATH=1
+    D:\cygwin\bin\bash.exe --login -c "cd '%cd%'; ./build/ci/build.sh -a configure" || EXIT /b 1
   )
 ) ELSE IF "%1%"=="build" (
   IF "%BE%"=="mingw-gcc" (
@@ -130,6 +141,11 @@ IF "%1"=="deplibs" (
   ) ELSE IF "%BE%"=="msvc" (
     CD build_ci\cmake
     cmake --build . --target ALL_BUILD --config Release || EXIT /b 1
+  ) ELSE IF "%BE%"=="cygwin-gcc" (
+    SET BS=cmake
+    SET MAKE_ARGS=-j
+    SET CYGWIN_NOWINPATH=1
+    D:\cygwin\bin\bash.exe --login -c "cd '%cd%'; ./build/ci/build.sh -a build" || EXIT /b 1
   )
 ) ELSE IF "%1%"=="test" (
   IF "%BE%"=="mingw-gcc" (
@@ -140,6 +156,13 @@ IF "%1"=="deplibs" (
   ) ELSE IF "%BE%"=="msvc" (
     CD build_ci\cmake
     cmake --build . --target RUN_TESTS --config Release || EXIT /b 1
+  ) ELSE IF "%BE%"=="cygwin-gcc" (
+    REM SET BS=cmake
+    REM SET CYGWIN_NOWINPATH=1
+    REM SET SKIP_TEST_SPARSE=1
+    ECHO "Skipping tests on this platform"
+    REM D:\cygwin\bin\bash.exe --login -c "cd '%cd%'; ./build/ci/build.sh -a test" || EXIT /b 1
+    EXIT /b 0
   )
 ) ELSE IF "%1%"=="install" (
   IF "%BE%"=="mingw-gcc" (
@@ -149,10 +172,23 @@ IF "%1"=="deplibs" (
   ) ELSE IF "%BE%"=="msvc" (
     CD build_ci\cmake
     cmake --build . --target INSTALL --config Release || EXIT /b 1
+  ) ELSE IF "%BE%"=="cygwin-gcc" (
+    SET BS=cmake
+    SET CYGWIN_NOWINPATH=1
+    D:\cygwin\bin\bash.exe --login -c "cd '%cd%'; ./build/ci/build.sh -a install" || EXIT /b 1
+    REM Exit early here; the build.sh install step for Cygwin prints the version.
+    EXIT /b 0
   )
   "C:\Program Files (x86)\libarchive\bin\bsdtar.exe" --version
 ) ELSE IF "%1"=="artifact" (
-    C:\windows\system32\tar.exe -c -C "C:\Program Files (x86)" --format=zip -f libarchive.zip libarchive
+  IF "%BE%"=="cygwin-gcc" (
+    SET BS=cmake
+    SET CYGWIN_NOWINPATH=1
+    D:\cygwin\bin\bash.exe --login -c "cd '%cd%'; ./build/ci/build.sh -a artifact" || EXIT /b 1
+    EXIT /b 0
+  )
+
+  C:\windows\system32\tar.exe -c -C "C:\Program Files (x86)" --format=zip -f libarchive.zip libarchive
 ) ELSE (
   ECHO "Usage: %0% deplibs|configure|build|test|install|artifact"
   @EXIT /b 0