ghcup-metadata/.github/workflows/bindists.yaml

145 lines
5.5 KiB
YAML
Raw Normal View History

2022-08-09 18:13:54 +00:00
name: Bindist installation
2022-08-10 17:47:40 +00:00
defaults:
run:
shell: bash
2022-08-09 18:13:54 +00:00
on:
workflow_dispatch:
inputs:
tool:
description: Tool
required: true
type: string
version:
description: Version
2022-08-09 18:13:54 +00:00
required: true
type: string
metadataFile:
description: Metadata file
required: true
default: ghcup-0.0.7.yaml
type: string
env:
BOOTSTRAP_HASKELL_NONINTERACTIVE: 1
BOOTSTRAP_HASKELL_MINIMAL: 1
BOOTSTRAP_HASKELL_ADJUST_BASHRC: 1
TOOL: ${{ github.event.inputs.tool }}
VERSION: ${{ github.event.inputs.version }}
METADATA_FILE: ${{ github.event.inputs.metadataFile }}
2022-08-09 18:13:54 +00:00
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:10
installCmd: apt-get update && apt-get install -y
2023-02-17 15:45:19 +00:00
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 libnuma-dev
2022-08-09 18:13:54 +00:00
- image: debian:11
installCmd: apt-get update && apt-get install -y
2023-02-17 15:45:19 +00:00
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 libnuma-dev
2022-09-16 09:14:11 +00:00
- image: ubuntu:18.04
installCmd: apt-get update && apt-get install -y
2022-09-16 09:16:51 +00:00
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
2022-08-09 18:13:54 +00:00
- 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: which gcc gmp libffi make ncurses perl tar xz
2023-01-01 08:05:29 +00:00
- image: fedora:27
installCmd: dnf install -y
toolRequirements: which findutils gcc gcc-c++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
2022-12-14 14:37:23 +00:00
- image: fedora:36
2022-08-09 18:13:54 +00:00
installCmd: dnf install -y
toolRequirements: which gcc g++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
2023-02-11 04:30:56 +00:00
- image: rockylinux:8
2023-02-11 04:27:48 +00:00
installCmd: dnf install -y
toolRequirements: which findutils gcc gcc-c++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
2023-02-17 15:45:19 +00:00
- image: rockylinux:9
installCmd: dnf install -y --allowerasing
toolRequirements: which findutils gcc gcc-c++ gmp gmp-devel make ncurses xz perl
- image: linuxmintd/mint19.3-amd64
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
- image: linuxmintd/mint20.2-amd64
installCmd: apt-get update && apt-get install -y
2023-02-17 15:45:19 +00:00
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
- image: linuxmintd/mint21.1-amd64
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
2022-08-09 18:13:54 +00:00
container:
image: ${{ matrix.image }}
steps:
- name: Install requirements
2022-08-10 17:47:40 +00:00
shell: sh
2022-08-09 18:13:54 +00:00
run: |
${{ matrix.installCmd }} curl bash git ${{ matrix.toolRequirements }}
2022-12-17 14:07:34 +00:00
2023-02-11 04:43:22 +00:00
- uses: actions/checkout@v3
2022-12-17 14:07:34 +00:00
2023-02-11 04:43:22 +00:00
- name: Install ghcup and bindist
run: .github/workflows/install-bindist.sh
2022-12-17 14:07:34 +00:00
2023-02-11 04:43:22 +00:00
bindist-install-mac-win:
name: Build non-linux
2022-08-09 18:13:54 +00:00
strategy:
fail-fast: false
matrix:
2023-02-11 04:43:22 +00:00
include:
- os: [self-hosted, macOS, ARM64]
- os: macos-11
- os: macos-12
- os: windows-latest
2022-08-09 18:13:54 +00:00
runs-on: ${{ matrix.os }}
steps:
2022-12-17 14:07:34 +00:00
2023-02-11 04:43:22 +00:00
- uses: actions/checkout@v3
2022-12-17 14:07:34 +00:00
- if: ${{ github.event_name == 'workflow_dispatch' }}
name: Install ghcup and bindist
2023-02-11 04:43:22 +00:00
run: .github/workflows/install-bindist.sh
2022-12-17 14:07:34 +00:00
2023-02-11 04:43:22 +00:00
bindist-install-arm:
name: Build ARM binary
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
2023-03-12 10:25:52 +00:00
- os: [self-hosted, Linux, ARM64]
2023-02-11 04:43:22 +00:00
ARCH: ARM
- os: [self-hosted, Linux, ARM64]
ARCH: ARM64
2022-12-17 14:07:34 +00:00
steps:
2023-02-11 04:43:22 +00:00
- uses: docker://arm64v8/ubuntu:focal
name: Cleanup (aarch64 linux)
2022-12-17 14:07:34 +00:00
with:
2023-02-11 04:43:22 +00:00
args: "find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +"
2022-12-17 14:07:34 +00:00
2023-02-11 04:43:22 +00:00
- name: git config
2022-12-17 14:07:34 +00:00
run: |
2023-02-11 04:43:22 +00:00
git config --global --get-all safe.directory | grep '^\*$' || git config --global --add safe.directory "*"
shell: bash
2022-12-17 14:07:34 +00:00
2023-02-11 04:43:22 +00:00
- uses: actions/checkout@v3
2022-12-17 14:07:34 +00:00
2023-02-11 04:43:22 +00:00
- if: matrix.ARCH == 'ARM'
uses: docker://hasufell/arm32v7-ubuntu-haskell:focal
name: Run build (armv7 linux)
with:
args: sh -c '.github/workflows/install-bindist.sh'
2022-12-17 14:07:34 +00:00
2023-02-11 04:43:22 +00:00
- if: matrix.ARCH == 'ARM64'
uses: docker://hasufell/arm64v8-ubuntu-haskell:focal
name: Run build (aarch64 linux)
with:
args: sh -c '.github/workflows/install-bindist.sh'