ghcup-metadata/.github/workflows/bindists.yaml
2022-08-09 21:44:47 +02:00

106 lines
4.0 KiB
YAML

name: Bindist installation
on:
workflow_dispatch:
inputs:
ghcVersion:
description: GHC version
required: true
type: string
metadataFile:
description: Metadata file
required: true
default: ghcup-0.0.7.yaml
type: string
jobs:
bindist-install:
name: linux-${{ matrix.image }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- image: alpine:latest
installCmd: apk update && apk add
toolRequirements: binutils-gold curl gcc g++ gmp-dev libc-dev libffi-dev make musl-dev ncurses-dev perl tar xz
- image: debian:9
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
- image: debian:10
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
- image: debian:11
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
- image: ubuntu:20.04
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
- image: ubuntu:22.04
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
- image: archlinux:latest
installCmd: pacman -Syu --noconfirm
toolRequirements: gcc gmp libffi make ncurses perl tar xz
- image: fedora:latest
installCmd: dnf install -y
toolRequirements: gcc g++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
container:
image: ${{ matrix.image }}
steps:
- name: Install requirements
run: |
${{ matrix.installCmd }} curl bash git ${{ matrix.toolRequirements }}
- uses: actions/checkout@v3
- name: Install ghcup
run: |
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
echo ~/.ghcup/bin >> $GITHUB_PATH
~/.ghcup/bin/ghcup --version
env:
BOOTSTRAP_HASKELL_NONINTERACTIVE: 1
BOOTSTRAP_HASKELL_MINIMAL: 1
- name: Print tool requirements
run: ghcup tool-requirements
- name: Install GHC ${{ github.event.inputs.ghcVersion }}
run: |
ghcup -v --url-source=file:${{ github.event.inputs.metadataFile }} \
install ghc --set ${{ github.event.inputs.ghcVersion }}
- name: GHC sanity check
shell: bash
run: |
ghc --version
echo 'main = print $ 1 + 1' > main.hs
ghc main.hs
[[ $(./main) -eq 2 ]]
bindist-install-macos:
name: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- macos-11
- macos-12
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Install ghcup
run: |
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
echo ~/.ghcup/bin >> $GITHUB_PATH
~/.ghcup/bin/ghcup --version
env:
BOOTSTRAP_HASKELL_NONINTERACTIVE: 1
BOOTSTRAP_HASKELL_MINIMAL: 1
- name: Print tool requirements
run: ghcup tool-requirements
- name: Install GHC ${{ github.event.inputs.ghcVersion }}
run: |
ghcup -v --url-source=file:${{ github.event.inputs.metadataFile }} \
install ghc --set ${{ github.event.inputs.ghcVersion }}
- name: GHC sanity check
shell: bash
run: |
ghc --version
echo 'main = print $ 1 + 1' > main.hs
ghc main.hs
[[ $(./main) -eq 2 ]]