Initial commit #6
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: Build | |
on: | |
push: | |
branches: | |
- '**' | |
jobs: | |
build: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@main | |
with: | |
submodules: true | |
- name: Checkout Redis submodule | |
run: | | |
git -C "${PWD}/submodules/cmake-redis" submodule update --init --depth='1' | |
- name: Free up some space | |
run: | | |
sudo rm --recursive --force \ | |
'/opt/'* \ | |
'/usr/local/lib/android' \ | |
'/usr/local/share/vcpkg' \ | |
'/usr/share/java' | |
sudo apt purge --auto-remove \ | |
'*apache2*' \ | |
'*docker*' \ | |
'*dotnet*' \ | |
'*firefox*' \ | |
'*google*' \ | |
'*jdk*' \ | |
'*nginx*' \ | |
'*php*' \ | |
'*ruby*' \ | |
'*wayland*' \ | |
'auto*' \ | |
'azure-cli' \ | |
'bind9*' \ | |
'build-essential' \ | |
'clang*' \ | |
'container*' \ | |
'glib*' \ | |
'libmono*' \ | |
'lld*' \ | |
'llvm*' \ | |
'mercurial*' \ | |
'mysql*' \ | |
'postgresql*' \ | |
'powershell' \ | |
'x11*' \ | |
'xdg*' | |
- name: Setup Linux cross-compiler | |
run: | | |
declare -r SPHYNX_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Sphynx/releases/latest')")" | |
declare -r SPHYNX_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r SPHYNX_URL="https://github.com/AmanoTeam/Sphynx/releases/download/${SPHYNX_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${SPHYNX_URL}" --output "${SPHYNX_TARBALL}" | |
tar --directory="$(dirname "${SPHYNX_TARBALL}")" --extract --file="${SPHYNX_TARBALL}" | |
echo 'SPHYNX_HOME=/tmp/sphynx' >> "${GITHUB_ENV}" | |
echo '/tmp/sphynx/bin' >> "${GITHUB_PATH}" | |
- name: Setup Android cross-compiler | |
uses: nttld/setup-ndk@main | |
id: setup-ndk | |
with: | |
ndk-version: r26d | |
- name: Post setup settings for Android cross-compiler | |
run: | | |
echo 'ANDROID_HOME=${{ steps.setup-ndk.outputs.ndk-path }}' >> "${GITHUB_ENV}" | |
sudo sed --in-place '/CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG/d' '/usr/local/share/cmake-'*'/Modules/Platform/Android.cmake' | |
echo '${{ steps.setup-ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin' >> "${GITHUB_PATH}" | |
- name: Setup Windows cross-compiler | |
run: | | |
declare -r LLVM_MINGW_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/LLVMMinGW-Builds/releases/latest')")" | |
declare -r LLVM_MINGW_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r LLVM_MINGW_URL="https://github.com/AmanoTeam/LLVMMinGW-Builds/releases/download/${LLVM_MINGW_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${LLVM_MINGW_URL}" --output "${LLVM_MINGW_TARBALL}" | |
tar --directory="$(dirname "${LLVM_MINGW_TARBALL}")" --extract --file="${LLVM_MINGW_TARBALL}" | |
echo 'LLVM_MINGW_HOME=/tmp/llvm-mingw' >> "${GITHUB_ENV}" | |
echo '/tmp/llvm-mingw/bin' >> "${GITHUB_PATH}" | |
- name: Setup NetBSD cross-compiler | |
run: | | |
declare -r DAKINI_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Dakini/releases/latest')")" | |
declare -r DAKINI_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r DAKINI_URL="https://github.com/AmanoTeam/Dakini/releases/download/${DAKINI_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${DAKINI_URL}" --output "${DAKINI_TARBALL}" | |
tar --directory="$(dirname "${DAKINI_TARBALL}")" --extract --file="${DAKINI_TARBALL}" | |
echo 'DAKINI_HOME=/tmp/dakini' >> "${GITHUB_ENV}" | |
echo '/tmp/dakini/bin' >> "${GITHUB_PATH}" | |
- name: Setup FreeBSD cross-compiler | |
run: | | |
declare -r LOKI_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Loki/releases/latest')")" | |
declare -r LOKI_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r LOKI_URL="https://github.com/AmanoTeam/Loki/releases/download/${LOKI_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --silent --connect-timeout '10' --retry '15' --retry-all-errors --fail --location --url "${LOKI_URL}" --output "${LOKI_TARBALL}" | |
tar --directory="$(dirname "${LOKI_TARBALL}")" --extract --file="${LOKI_TARBALL}" | |
echo 'LOKI_HOME=/tmp/loki' >> "${GITHUB_ENV}" | |
echo '/tmp/loki/bin' >> "${GITHUB_PATH}" | |
- name: Setup DragonFly cross-compiler | |
run: | | |
declare -r DRAGONFLY_CROSS_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Venti/releases/latest')")" | |
declare -r DRAGONFLY_CROSS_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r DRAGONFLY_CROSS_URL="https://github.com/AmanoTeam/dr4g0nflybsdcr0ss/releases/download/${DRAGONFLY_CROSS_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${DRAGONFLY_CROSS_URL}" --output "${DRAGONFLY_CROSS_TARBALL}" | |
tar --directory="$(dirname "${DRAGONFLY_CROSS_TARBALL}")" --extract --file="${DRAGONFLY_CROSS_TARBALL}" | |
echo 'VENTI_HOME=/tmp/venti' >> "${GITHUB_ENV}" | |
echo '/tmp/venti/bin' >> "${GITHUB_PATH}" | |
- name: Setup Haiku cross-compiler | |
run: | | |
declare -r SIL_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Sil/releases/latest')")" | |
declare -r SIL_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r SIL_URL="https://github.com/AmanoTeam/Sil/releases/download/${SIL_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${SIL_URL}" --output "${SIL_TARBALL}" | |
tar --directory="$(dirname "${SIL_TARBALL}")" --extract --file="${SIL_TARBALL}" | |
echo 'SIL_HOME=/tmp/sil' >> "${GITHUB_ENV}" | |
echo '/tmp/sil/bin' >> "${GITHUB_PATH}" | |
- name: Setup OBGGCC cross-compiler | |
run: | | |
declare -r OBGGCC_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/obggcc/releases/latest')")" | |
declare -r OBGGCC_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r OBGGCC_URL="https://github.com/AmanoTeam/obggcc/releases/download/${OBGGCC_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${OBGGCC_URL}" --output "${OBGGCC_TARBALL}" | |
tar --directory="$(dirname "${OBGGCC_TARBALL}")" --extract --file="${OBGGCC_TARBALL}" | |
echo 'OBGGCC_HOME=/tmp/obggcc' >> "${GITHUB_ENV}" | |
echo '/tmp/obggcc/bin' >> "${GITHUB_PATH}" | |
- name: Setup OpenBSD cross-compiler | |
run: | | |
declare -r ATAR_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Atar/releases/latest')")" | |
declare -r ATAR_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r ATAR_URL="https://github.com/AmanoTeam/Atar/releases/download/${ATAR_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${ATAR_URL}" --output "${ATAR_TARBALL}" | |
tar --directory="$(dirname "${ATAR_TARBALL}")" --extract --file="${ATAR_TARBALL}" | |
echo 'ATAR_HOME=/tmp/atar' >> "${GITHUB_ENV}" | |
echo '/tmp/atar/bin' >> "${GITHUB_PATH}" | |
- name: Setup Linux musl cross-compiler | |
run: | | |
declare -r RAIDEN_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Raiden/releases/latest')")" | |
declare -r RAIDEN_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r RAIDEN_URL="https://github.com/AmanoTeam/Raiden/releases/download/${RAIDEN_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${RAIDEN_URL}" --output "${RAIDEN_TARBALL}" | |
tar --directory="$(dirname "${RAIDEN_TARBALL}")" --extract --file="${RAIDEN_TARBALL}" | |
echo 'RAIDEN_HOME=/tmp/raiden' >> "${GITHUB_ENV}" | |
echo '/tmp/raiden/bin' >> "${GITHUB_PATH}" | |
- name: Setup SerenityOS cross-compiler | |
run: | | |
declare -r SENNA_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Senna/releases/latest')")" | |
declare -r SENNA_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r SENNA_URL="https://github.com/AmanoTeam/Senna/releases/download/${SENNA_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${SENNA_URL}" --output "${SENNA_TARBALL}" | |
tar --directory="$(dirname "${SENNA_TARBALL}")" --extract --file="${SENNA_TARBALL}" | |
echo 'SENNA_HOME=/tmp/senna' >> "${GITHUB_ENV}" | |
echo '/tmp/senna/bin' >> "${GITHUB_PATH}" | |
- name: Setup Kindle cross-compiler | |
run: | | |
declare -r KEL_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Kel/releases/latest')")" | |
declare -r KEL_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r KEL_URL="https://github.com/AmanoTeam/Kel/releases/download/${KEL_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${KEL_URL}" --output "${KEL_TARBALL}" | |
tar --directory="$(dirname "${KEL_TARBALL}")" --extract --file="${KEL_TARBALL}" | |
echo 'KEL_HOME=/tmp/kel' >> "${GITHUB_ENV}" | |
echo '/tmp/kel/bin' >> "${GITHUB_PATH}" | |
- name: Setup PocketBook cross-compiler | |
run: | | |
declare -r NERO_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Nero/releases/latest')")" | |
declare -r NERO_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r NERO_URL="https://github.com/AmanoTeam/Nero/releases/download/${NERO_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${NERO_URL}" --output "${NERO_TARBALL}" | |
tar --directory="$(dirname "${NERO_TARBALL}")" --extract --file="${NERO_TARBALL}" | |
echo 'NERO_HOME=/tmp/nero' >> "${GITHUB_ENV}" | |
echo '/tmp/nero/bin' >> "${GITHUB_PATH}" | |
- name: Setup reMarkable cross-compiler | |
run: | | |
declare -r NAN_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Nan/releases/latest')")" | |
declare -r NAN_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r NAN_URL="https://github.com/AmanoTeam/Nan/releases/download/${NAN_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${NAN_URL}" --output "${NAN_TARBALL}" | |
tar --directory="$(dirname "${NAN_TARBALL}")" --extract --file="${NAN_TARBALL}" | |
echo 'NAN_HOME=/tmp/nan' >> "${GITHUB_ENV}" | |
echo '/tmp/nan/bin' >> "${GITHUB_PATH}" | |
- name: Setup Cervantes cross-compiler | |
run: | | |
declare -r NIL_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Nil/releases/latest')")" | |
declare -r NIL_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r NIL_URL="https://github.com/AmanoTeam/Nil/releases/download/${NIL_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${NIL_URL}" --output "${NIL_TARBALL}" | |
tar --directory="$(dirname "${NIL_TARBALL}")" --extract --file="${NIL_TARBALL}" | |
echo 'NIL_HOME=/tmp/nil' >> "${GITHUB_ENV}" | |
echo '/tmp/nil/bin' >> "${GITHUB_PATH}" | |
- name: Setup Bookeen cross-compiler | |
run: | | |
declare -r AI_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Ai/releases/latest')")" | |
declare -r AI_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r AI_URL="https://github.com/AmanoTeam/Ai/releases/download/${AI_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${AI_URL}" --output "${AI_TARBALL}" | |
tar --directory="$(dirname "${AI_TARBALL}")" --extract --file="${AI_TARBALL}" | |
echo 'AI_HOME=/tmp/ai' >> "${GITHUB_ENV}" | |
echo '/tmp/ai/bin' >> "${GITHUB_PATH}" | |
- name: Setup Kobo cross-compiler | |
run: | | |
declare -r KAL_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Kal/releases/latest')")" | |
declare -r KAL_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r KAL_URL="https://github.com/AmanoTeam/Kal/releases/download/${KAL_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${KAL_URL}" --output "${KAL_TARBALL}" | |
tar --directory="$(dirname "${KAL_TARBALL}")" --extract --file="${KAL_TARBALL}" | |
echo 'KAL_HOME=/tmp/kal' >> "${GITHUB_ENV}" | |
echo '/tmp/kal/bin' >> "${GITHUB_PATH}" | |
- name: Setup Tizen cross-compiler | |
run: | | |
declare -r NUL_TAG="$(jq --raw-output '.tag_name' <<< "$(curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --url 'https://api.github.com/repos/AmanoTeam/Nul/releases/latest')")" | |
declare -r NUL_TARBALL='/tmp/toolchain.tar.xz' | |
declare -r NUL_URL="https://github.com/AmanoTeam/Nul/releases/download/${NUL_TAG}/x86_64-unknown-linux-gnu.tar.xz" | |
curl --connect-timeout '10' --retry '15' --retry-all-errors --fail --silent --location --url "${NUL_URL}" --output "${NUL_TARBALL}" | |
tar --directory="$(dirname "${NUL_TARBALL}")" --extract --file="${NUL_TARBALL}" | |
echo 'NUL_HOME=/tmp/nul' >> "${GITHUB_ENV}" | |
echo '/tmp/nul/bin' >> "${GITHUB_PATH}" | |
- name: Build with CMake | |
run: | | |
declare -ra targets=( | |
# aarch64-apple-darwin | |
hppa-unknown-openbsd | |
powerpc64-unknown-openbsd | |
vax-unknown-netbsdelf | |
# x86_64-apple-darwin | |
# x86_64h-apple-darwin | |
aarch64-linux-android | |
aarch64-linux-gnu | |
aarch64-tizeniot-linux-gnu | |
aarch64-unknown-freebsd | |
aarch64-unknown-linux-gnu | |
aarch64-unknown-linux-gnu2.19 | |
aarch64-unknown-linux-gnu2.24 | |
aarch64-unknown-linux-gnu2.28 | |
aarch64-unknown-linux-gnu2.31 | |
aarch64-unknown-linux-musl | |
aarch64-unknown-openbsd | |
aarch64-unknown-serenity | |
aarch64-w64-mingw32 | |
alpha-linux-gnu | |
alpha-unknown-linux-gnu | |
alpha-unknown-linux-gnu2.7 | |
alpha-unknown-netbsd | |
alpha-unknown-openbsd | |
arm-bookeen-linux-gnueabi | |
arm-cervantes-linux-gnueabi | |
arm-kindle-linux-gnueabi | |
arm-kindle5-linux-gnueabi | |
arm-kindlepw2-linux-gnueabi | |
arm-kobo-linux-gnueabihf | |
arm-linux-gnueabi | |
arm-linux-gnueabihf | |
arm-obreey-linux-gnueabi | |
arm-remarkable-linux-gnueabihf | |
arm-tizeniot-linux-gnueabi | |
arm-tizeniotheadless-linux-gnueabi | |
arm-tizenmobile-linux-gnueabi | |
arm-tizenwearable-linux-gnueabi | |
arm-unknown-linux-gnueabi | |
arm-unknown-linux-gnueabi2.11 | |
arm-unknown-linux-gnueabi2.13 | |
arm-unknown-linux-gnueabi2.19 | |
arm-unknown-linux-gnueabi2.24 | |
arm-unknown-linux-gnueabi2.7 | |
arm-unknown-linux-gnueabihf | |
arm-unknown-linux-gnueabihf2.13 | |
arm-unknown-linux-gnueabihf2.19 | |
arm-unknown-linux-gnueabihf2.24 | |
arm-unknown-linux-gnueabihf2.28 | |
arm-unknown-linux-gnueabihf2.31 | |
arm-unknown-linux-musleabihf | |
arm-unknown-openbsd | |
armv7-w64-mingw32 | |
armv7a-linux-androideabi | |
armv7l-unknown-linux-musleabihf | |
hppa-linux-gnu | |
hppa-unknown-linux-gnu | |
hppa-unknown-linux-gnu2.7 | |
hppa-unknown-netbsd | |
i386-tizenmobile-linux-gnueabi | |
i386-tizenwearable-linux-gnueabi | |
i386-unknown-freebsd | |
i386-unknown-linux-gnu | |
i386-unknown-linux-gnu2.11 | |
i386-unknown-linux-gnu2.19 | |
i386-unknown-linux-gnu2.24 | |
i386-unknown-linux-gnu2.28 | |
i386-unknown-linux-gnu2.31 | |
i386-unknown-linux-gnu2.7 | |
i386-unknown-linux-musl | |
i386-unknown-netbsdelf | |
i386-unknown-openbsd | |
i586-unknown-haiku | |
i686-linux-android | |
i686-linux-gnu | |
i686-w64-mingw32 | |
ia64-unknown-linux-gnu | |
ia64-unknown-linux-gnu2.11 | |
ia64-unknown-linux-gnu2.13 | |
ia64-unknown-linux-gnu2.7 | |
m68k-linux-gnu | |
mips-linux-gnu | |
mips-unknown-linux-gnu | |
mips-unknown-linux-gnu2.11 | |
mips-unknown-linux-gnu2.13 | |
mips-unknown-linux-gnu2.19 | |
mips-unknown-linux-gnu2.24 | |
mips-unknown-linux-gnu2.28 | |
mips-unknown-linux-gnu2.7 | |
mips-unknown-netbsd | |
mips64-linux-gnuabi64 | |
mips64-unknown-linux-musl | |
mips64-unknown-openbsd | |
mips64el-linux-gnuabi64 | |
mips64el-unknown-linux-gnuabi64 | |
mips64el-unknown-linux-gnuabi642.24 | |
mips64el-unknown-linux-gnuabi642.28 | |
mips64el-unknown-linux-gnuabi642.31 | |
mips64el-unknown-openbsd | |
mipsel-linux-gnu | |
mipsel-unknown-linux-gnu | |
mipsel-unknown-linux-gnu2.11 | |
mipsel-unknown-linux-gnu2.13 | |
mipsel-unknown-linux-gnu2.19 | |
mipsel-unknown-linux-gnu2.24 | |
mipsel-unknown-linux-gnu2.28 | |
mipsel-unknown-linux-gnu2.31 | |
mipsel-unknown-linux-gnu2.7 | |
mipsisa32r6-linux-gnu | |
mipsisa32r6el-linux-gnu | |
mipsisa64r6-linux-gnuabi64 | |
mipsisa64r6el-linux-gnuabi64 | |
powerpc-linux-gnu | |
powerpc-unknown-freebsd | |
powerpc-unknown-linux-gnu | |
powerpc-unknown-linux-gnu2.11 | |
powerpc-unknown-linux-gnu2.13 | |
powerpc-unknown-linux-gnu2.19 | |
powerpc-unknown-linux-gnu2.7 | |
powerpc-unknown-netbsd | |
powerpc-unknown-openbsd | |
powerpc64-linux-gnu | |
powerpc64-unknown-freebsd | |
powerpc64-unknown-freebsd_elfv2 | |
powerpc64le-linux-gnu | |
powerpc64le-unknown-linux-gnu | |
powerpc64le-unknown-linux-gnu2.19 | |
powerpc64le-unknown-linux-gnu2.24 | |
powerpc64le-unknown-linux-gnu2.28 | |
powerpc64le-unknown-linux-gnu2.31 | |
powerpc64le-unknown-linux-musl | |
riscv64-linux-gnu | |
riscv64-unknown-freebsd | |
riscv64-unknown-linux-musl | |
riscv64-unknown-openbsd | |
s390-unknown-linux-gnu | |
s390-unknown-linux-gnu2.11 | |
s390-unknown-linux-gnu2.13 | |
s390-unknown-linux-gnu2.7 | |
s390x-linux-gnu | |
s390x-unknown-linux-gnu | |
s390x-unknown-linux-gnu2.13 | |
s390x-unknown-linux-gnu2.19 | |
s390x-unknown-linux-gnu2.24 | |
s390x-unknown-linux-gnu2.28 | |
s390x-unknown-linux-gnu2.31 | |
s390x-unknown-linux-musl | |
sh4-linux-gnu | |
shle-unknown-netbsdelf | |
sparc-unknown-linux-gnu | |
sparc-unknown-linux-gnu2.11 | |
sparc-unknown-linux-gnu2.13 | |
sparc-unknown-linux-gnu2.7 | |
sparc-unknown-netbsdelf | |
sparc64-linux-gnu | |
sparc64-unknown-freebsd | |
sparc64-unknown-netbsd | |
sparc64-unknown-openbsd | |
x86_64-linux-android | |
x86_64-linux-gnu | |
x86_64-linux-gnux32 | |
x86_64-unknown-dragonfly | |
x86_64-unknown-freebsd | |
x86_64-unknown-haiku | |
x86_64-unknown-linux-gnu | |
x86_64-unknown-linux-gnu | |
x86_64-unknown-linux-gnu2.11 | |
x86_64-unknown-linux-gnu2.13 | |
x86_64-unknown-linux-gnu2.19 | |
x86_64-unknown-linux-gnu2.24 | |
x86_64-unknown-linux-gnu2.28 | |
x86_64-unknown-linux-gnu2.31 | |
x86_64-unknown-linux-gnu2.7 | |
x86_64-unknown-linux-musl | |
x86_64-unknown-netbsd | |
x86_64-unknown-openbsd | |
x86_64-unknown-serenity | |
x86_64-w64-mingw32 | |
) | |
declare running='0' | |
declare -r toolchains_directory="${PWD}/.github/workflows/cmake_toolchains" | |
declare -r source_directory="${PWD}/submodules/cmake-redis" | |
declare -r output_directory="$(realpath './output')" | |
mkdir --parent "${output_directory}" | |
for target in "${targets[@]}"; do | |
declare build_directory="${target}-build" | |
declare install_prefix="${build_directory}/${target}" | |
declare status='0' | |
echo "- Building for ${target}" | |
cmake \ | |
-B "${build_directory}" \ | |
-S "${source_directory}" \ | |
-DCMAKE_TOOLCHAIN_FILE="${toolchains_directory}/${target}.cmake" \ | |
-DCMAKE_INSTALL_PREFIX="${install_prefix}" \ | |
-DCMAKE_BUILD_TYPE='MinSizeRel' | |
echo "- Building main project" | |
cmake --build "${build_directory}" || status='1' | |
# Some targets will fail to build (and that's ok) | |
if [ "${status}" == '0' ]; then | |
cmake --install "${build_directory}" --strip 1>/dev/null | |
echo "- Creating compressed archive" | |
pushd "$(dirname "${install_prefix}")" | |
if [[ "${target}" == *'mingw32' ]]; then | |
zip --recurse-paths -9 "${output_directory}/${target}.zip" "${target}" 1>/dev/null | |
else | |
tar --create --file=- "${target}" | xz --extreme --threads='0' --compress -9 > "${output_directory}/${target}.tar.xz" | |
fi | |
pushd | |
fi | |
cmake --build "${build_directory}" --target 'redis-clean' | |
rm --force --recursive "${build_directory}" | |
done | |
- name: Upload artifact | |
uses: actions/upload-artifact@main | |
with: | |
path: ./output | |
- name: Get tag name for release | |
if: startsWith(github.event.head_commit.message, 'Bump version') | |
run: echo "VERSION_TAG=${COMMIT_MESSAGE/* }" >> "${GITHUB_ENV}" | |
env: | |
COMMIT_MESSAGE: ${{ github.event.head_commit.message }} | |
- name: Create release | |
if: startsWith(github.event.head_commit.message, 'Bump version') | |
uses: softprops/action-gh-release@master | |
with: | |
tag_name: v${{ env.VERSION_TAG }} | |
name: Redis v${{ env.VERSION_TAG }} | |
files: ./output/* | |
draft: true | |
prerelease: false | |
fail_on_unmatched_files: true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |