148 lines
4.8 KiB
YAML
148 lines
4.8 KiB
YAML
name: Test cross bindists
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
tags:
|
|
- 'v*'
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
schedule:
|
|
- cron: '0 2 * * *'
|
|
|
|
env:
|
|
CABAL_CACHE_DISABLE: ${{ vars.CABAL_CACHE_DISABLE }}
|
|
CABAL_CACHE_NONFATAL: yes
|
|
|
|
jobs:
|
|
build:
|
|
name: Build linux binary
|
|
runs-on: [self-hosted, Linux, X64, maerwald]
|
|
env:
|
|
CABAL_VER: 3.10.3.0
|
|
JSON_VERSION: "0.0.8"
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
S3_HOST: ${{ secrets.S3_HOST }}
|
|
ARTIFACT: "x86_64-linux-ghcup"
|
|
GHC_VER: 8.10.7
|
|
ARCH: 64
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'true'
|
|
|
|
- name: Run build
|
|
uses: docker://hasufell/alpine-haskell:3.12
|
|
with:
|
|
args: sh .github/scripts/build.sh
|
|
env:
|
|
ARTIFACT: ${{ env.ARTIFACT }}
|
|
ARCH: ${{ env.ARCH }}
|
|
GHC_VER: ${{ env.GHC_VER }}
|
|
DISTRO: Alpine
|
|
AWS_SECRET_ACCESS_KEY: ${{ env.AWS_SECRET_ACCESS_KEY }}
|
|
AWS_ACCESS_KEY_ID: ${{ env.AWS_ACCESS_KEY_ID }}
|
|
S3_HOST: ${{ env.S3_HOST }}
|
|
|
|
- if: always()
|
|
name: Upload artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: artifacts
|
|
path: |
|
|
./out/*
|
|
|
|
test-cross-linux:
|
|
name: Test linux cross
|
|
needs: "build"
|
|
runs-on: [self-hosted, Linux, X64]
|
|
container:
|
|
image: registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:a9297a370025101b479cfd4977f8f910814e03ab
|
|
options: --user root
|
|
env:
|
|
CABAL_VER: 3.10.3.0
|
|
BUILD_CONF_ARGS: "--enable-unregisterised"
|
|
HADRIAN_FLAVOUR: ""
|
|
JSON_VERSION: "0.0.8"
|
|
GHC_VER: 8.10.6
|
|
GHC_TARGET_VERSION: "8.10.7"
|
|
ARCH: 64
|
|
DISTRO: Debian
|
|
ARTIFACT: "x86_64-linux-ghcup"
|
|
CROSS: "arm-linux-gnueabihf"
|
|
WRAPPER: "run"
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'true'
|
|
|
|
- uses: actions/download-artifact@v4
|
|
with:
|
|
name: artifacts
|
|
path: ./out
|
|
|
|
- name: Run test (64 bit linux)
|
|
run: |
|
|
sudo apt-get update -y
|
|
sudo apt-get install -y libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl gzip libstdc++-11-dev
|
|
sudo apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
|
|
sudo dpkg --add-architecture armhf
|
|
sudo apt-get update -y
|
|
sudo apt-get install -y libncurses-dev:armhf libstdc++-11-dev:armhf
|
|
# ld.bfd is broken on armv7: https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
|
update-alternatives --install "/usr/bin/x86_64-linux-gnu-ld" "ld" "/usr/bin/x86_64-linux-gnu-ld.gold" 20
|
|
update-alternatives --install "/usr/bin/x86_64-linux-gnu-ld" "ld" "/usr/bin/x86_64-linux-gnu-ld.bfd" 10
|
|
update-alternatives --set "ld" "/usr/bin/x86_64-linux-gnu-ld.gold"
|
|
update-alternatives --install "/usr/bin/arm-linux-gnueabihf-ld" "ld-arm" "/usr/bin/arm-linux-gnueabihf-ld.gold" 20
|
|
update-alternatives --install "/usr/bin/arm-linux-gnueabihf-ld" "ld-arm" "/usr/bin/arm-linux-gnueabihf-ld.bfd" 10
|
|
update-alternatives --set "ld-arm" "/usr/bin/arm-linux-gnueabihf-ld.gold"
|
|
sh .github/scripts/cross.sh
|
|
|
|
test-cross-js:
|
|
name: Test GHC JS cross
|
|
needs: "build"
|
|
runs-on: [self-hosted, Linux, X64]
|
|
container:
|
|
image: registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb12:a9297a370025101b479cfd4977f8f910814e03ab
|
|
options: --user root
|
|
env:
|
|
CABAL_VER: 3.10.3.0
|
|
BUILD_CONF_ARGS: ""
|
|
HADRIAN_FLAVOUR: "default+native_bignum"
|
|
JSON_VERSION: "0.0.8"
|
|
GHC_VER: 9.6.2
|
|
GHC_TARGET_VERSION: "9.6.2"
|
|
ARCH: 64
|
|
DISTRO: Debian
|
|
ARTIFACT: "x86_64-linux-ghcup"
|
|
CROSS: "javascript-unknown-ghcjs"
|
|
WRAPPER: "emconfigure"
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'true'
|
|
|
|
- uses: actions/download-artifact@v4
|
|
with:
|
|
name: artifacts
|
|
path: ./out
|
|
|
|
- name: Run test (64 bit linux)
|
|
run: |
|
|
sudo apt-get update -y
|
|
sudo apt-get install -y libnuma-dev zlib1g-dev libgmp-dev libgmp10 libssl-dev liblzma-dev libbz2-dev git wget lsb-release software-properties-common gnupg2 apt-transport-https gcc autoconf automake build-essential curl gzip
|
|
git clone https://github.com/emscripten-core/emsdk.git
|
|
cd emsdk
|
|
./emsdk install latest
|
|
./emsdk activate latest
|
|
. ./emsdk_env.sh
|
|
cd ..
|
|
bash .github/scripts/cross.sh
|
|
|