diff --git a/.appveyor.yml b/.appveyor.yml index 9720dc2d..ca4d5049 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -7,6 +7,7 @@ version: 'vers.{build}' branches: except: - gh-pages + - /.*/ # Appveyor builds are currently disabled. # Do not build on tags (GitHub and BitBucket) skip_tags: true diff --git a/.ci_helpers/clone b/.ci_helpers/clone index c0b7c4d9..34054b86 100755 --- a/.ci_helpers/clone +++ b/.ci_helpers/clone @@ -18,7 +18,7 @@ ref='' [ -z "$ref" ] && repository='https://github.com/samtools/htslib.git' set -x -git clone --recurse-submodules --shallow-submodules --depth=1 ${ref:+--branch="$branch"} "$repository" "$localdir" +git clone --recurse-submodules --shallow-submodules --depth=2 ${ref:+--branch="$branch"} "$repository" "$localdir" # NB: "samtools" as the owner/organisation, not the repo name if [ "x$owner" = "xsamtools" -a -z "$ref" -a "x$htslib_PR" != "x" ] diff --git a/.gitattributes b/.gitattributes index 9d42c7c4..d765010a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,3 +10,9 @@ .git* export-ignore .ci_helpers export-ignore README.md export-ignore + +# Prevent Windows cr-lf endings. +test/** -text +test/**.c text +test/**.h text +test/**.pl text diff --git a/.github/workflows/windows-build.yml b/.github/workflows/windows-build.yml new file mode 100644 index 00000000..49a14f37 --- /dev/null +++ b/.github/workflows/windows-build.yml @@ -0,0 +1,52 @@ +name: Windows/MinGW-W64 CI +on: [push, pull_request] + +jobs: + build: + runs-on: windows-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} + - name: Set up MSYS2 MinGW-W64 + uses: msys2/setup-msys2@v2 + with: + msystem: mingw64 + update: false + install: >- + mingw-w64-x86_64-toolchain + mingw-w64-x86_64-autotools + mingw-w64-x86_64-curl + mingw-w64-x86_64-libdeflate + mingw-w64-x86_64-tools-git + mingw-w64-x86_64-zlib + mingw-w64-x86_64-bzip2 + mingw-w64-x86_64-xz + - name: Clone htslib + shell: msys2 {0} + run: | + export PATH="$PATH:/mingw64/bin:/c/Program Files/Git/bin" + export MSYSTEM=MINGW64 + htslib_pr=`git log -2 --format='%s' | sed -n 's/.*htslib#\([0-9]*\).*/\1/p'` + .ci_helpers/clone ${GITHUB_REPOSITORY_OWNER} htslib htslib ${GITHUB_HEAD_REF:-$GITHUB_REF_NAME} $htslib_pr + pushd . + cd htslib + autoreconf -i + popd + - name: Compile bcftools + shell: msys2 {0} + run: | + export PATH="$PATH:/mingw64/bin:/c/Program Files/Git/bin" + export MSYSTEM=MINGW64 + autoheader + autoconf -Wno-syntax + ./configure --enable-werror + make -j4 + - name: Check bcftools + shell: msys2 {0} + run: | + export PATH="$PATH:/mingw64/bin:/c/Program Files/Git/bin" + export MSYSTEM=MINGW64 + make check +