fix: Correct OS detection for AVX-512 #281
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: Test | |
on: [push, pull_request] | |
jobs: | |
makefile-analysis: | |
name: makefile-analysis | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: "Install analysis tools" | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y clang-tools valgrind | |
- name: Run tests | |
run: ./test/ci/analysis.sh | |
makefile-test: | |
name: makefile-${{ matrix.runner }}-amd64-${{ matrix.compiler }} ${{ ((matrix.openmp == 1) && '+openmp') || '' }} | |
needs: makefile-analysis | |
runs-on: ${{ matrix.runner }} | |
strategy: | |
fail-fast: false | |
matrix: | |
runner: ["ubuntu-20.04"] | |
compiler: ["gcc", "clang"] | |
openmp: ["0", "1"] | |
include: | |
- runner: "macos-11" | |
compiler: "clang" | |
openmp: "0" | |
env: | |
OPENMP: ${{ matrix.openmp }} | |
OMP_NUM_THREADS: ${{ ((matrix.openmp == 1) && '2') || '0' }} | |
CC: ${{ matrix.compiler }} | |
OBJCOPY: ${{ (startsWith(matrix.runner, 'macos') && 'echo') || 'objcopy' }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Run tests | |
run: ./test/ci/test.sh | |
cmake-test: | |
name: cmake-${{ matrix.runner }}-${{ matrix.platform }} | |
needs: makefile-analysis | |
runs-on: ${{ matrix.runner }} | |
strategy: | |
fail-fast: false | |
matrix: | |
runner: ["ubuntu-20.04", "macos-11", "windows-2019"] | |
platform: ["x86_64", "i686"] | |
exclude: | |
- runner: "macos-11" | |
platform: "i686" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Ubuntu i686 support | |
if: runner.os == 'Linux' && matrix.platform == 'i686' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libc6-dev-i386 | |
echo "CFLAGS=-m32" >> $GITHUB_ENV | |
echo "LDFLAGS=-m32" >> $GITHUB_ENV | |
- name: CMake Configure | |
run: > | |
cmake | |
-B out | |
-Werror=dev | |
-DBASE64_BUILD_TESTS=ON | |
${{ runner.os != 'Windows' && '-DCMAKE_BUILD_TYPE=Release' || '' }} | |
${{ runner.os == 'macOS' && '-DBASE64_WITH_AVX2=OFF' || '' }} | |
${{ runner.os == 'Windows' && matrix.platform == 'i686' && '-A Win32' || '' }} | |
-DBASE64_WITH_AVX512=OFF | |
- name: CMake Build | |
run: cmake --build out --config Release --verbose | |
- name: CTest | |
run: ctest --no-tests=error --test-dir out -VV --build-config Release | |
alpine-makefile-test: | |
name: makefile-alpine-amd64-gcc | |
needs: makefile-analysis | |
runs-on: ubuntu-latest | |
container: | |
image: alpine:3.12 | |
env: | |
CC: gcc | |
steps: | |
- name: Install deps | |
run: apk add --update bash build-base git | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Run tests | |
run: ./test/ci/test.sh | |
alpine-cmake-test: | |
name: cmake-alpine-amd64-gcc | |
needs: makefile-analysis | |
runs-on: ubuntu-latest | |
container: | |
image: alpine:3.12 | |
steps: | |
- name: Install deps | |
run: apk add --update bash build-base cmake git | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: CMake Configure | |
run: > | |
cmake | |
-B out | |
-Werror=dev | |
-DBASE64_BUILD_TESTS=ON | |
-DBASE64_WITH_AVX512=OFF | |
-DCMAKE_BUILD_TYPE=Release | |
- name: CMake Build | |
run: cmake --build out --config Release --verbose | |
- name: CTest | |
run: ctest --no-tests=error -VV --build-config Release | |
working-directory: ./out | |
alpine-alt-arch-makefile-test: | |
name: makefile-alpine-${{matrix.arch}}-${{matrix.cc}} | |
needs: makefile-analysis | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [armv7, aarch64, s390x, ppc64le] | |
cc: [gcc, clang] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- uses: uraimo/run-on-arch-action@v2 | |
with: | |
arch: ${{matrix.arch}} | |
distro: alpine_latest | |
env: | | |
CC: ${{matrix.cc}} | |
install: apk add --update bash build-base cmake git ${{matrix.cc}} | |
run: ./test/ci/test.sh | |
alpine-alt-arch-cmake-test: | |
name: cmake-alpine-${{matrix.arch}}-${{matrix.cc}} | |
needs: makefile-analysis | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [armv7, aarch64, s390x, ppc64le] | |
cc: [gcc, clang] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- uses: uraimo/run-on-arch-action@v2 | |
with: | |
arch: ${{matrix.arch}} | |
distro: alpine_latest | |
env: | | |
CC: ${{matrix.cc}} | |
install: apk add --update bash build-base cmake git ${{matrix.cc}} | |
run: | | |
echo "::group::CMake Configure" | |
cmake -B out -Werror=dev -DBASE64_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release | |
echo "::endgroup::CMake Configure" | |
echo "::group::CMake Build" | |
cmake --build out --config Release --verbose | |
echo "::endgroup::CMake Build" | |
echo "::group::CTest" | |
ctest --no-tests=error --test-dir out -VV --build-config Release | |
echo "::endgroup::CTest" | |
msys2-cmake-test: | |
name: msys2-cmake-${{ matrix.msystem }} | |
needs: makefile-analysis | |
runs-on: windows-2022 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { msystem: msys, toolchain: "gcc" } | |
- { msystem: mingw32, env: mingw-w64-i686- } | |
- { msystem: mingw64, env: mingw-w64-x86_64- } | |
- { msystem: ucrt64, env: mingw-w64-ucrt-x86_64- } | |
- { msystem: clang32, env: mingw-w64-clang-i686- } | |
- { msystem: clang64, env: mingw-w64-clang-x86_64- } | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup MSYS2 ${{matrix.msystem}} | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{matrix.msystem}} | |
update: true | |
install: >- | |
make | |
${{ matrix.env }}${{ matrix.toolchain || 'toolchain' }} | |
${{ matrix.env }}cmake | |
- name: CMake Configure | |
shell: msys2 {0} | |
run: > | |
cmake | |
-B out | |
-Werror=dev | |
-DBASE64_BUILD_TESTS=ON | |
-DCMAKE_BUILD_TYPE=Release | |
-DBASE64_WITH_AVX512=OFF | |
- name: CMake Build | |
shell: msys2 {0} | |
run: cmake --build out --config Release --verbose | |
- name: CTest | |
shell: msys2 {0} | |
run: ctest --no-tests=error --test-dir out -VV --build-config Release | |
- name: Test demo utility with unicode filenames and file contents on Windows | |
shell: msys2 {0} | |
run: | | |
out/bin/base64 test/ci/😵💫.bin > test/ci/😵💫.bin.b64 | |
out/bin/base64 -d test/ci/😵💫.bin.b64 > test/ci/😵💫.bin | |
cd test/ci | |
sha256sum -c checksums.txt | |
msys2-makefile-test: | |
name: msys2-makefile-${{ matrix.msystem }} | |
needs: makefile-analysis | |
runs-on: windows-2022 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { msystem: msys, toolchain: "gcc" } | |
- { msystem: mingw32, env: mingw-w64-i686- } | |
- { msystem: mingw64, env: mingw-w64-x86_64- } | |
- { msystem: ucrt64, env: mingw-w64-ucrt-x86_64- } | |
# - { msystem: clang32, env: mingw-w64-clang-i686- } disabled, lld does not support the "-r" option | |
# - { msystem: clang64, env: mingw-w64-clang-x86_64- } disabled, lld does not support the "-r" option | |
env: | |
CC: cc.exe | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup MSYS2 ${{matrix.msystem}} | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{matrix.msystem}} | |
update: true | |
install: >- | |
make | |
${{ matrix.env }}${{ matrix.toolchain || 'toolchain' }} | |
- name: Run tests | |
shell: msys2 {0} | |
run: ./test/ci/test.sh |