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

267 lines
9.8 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:
2022-12-17 14:07:34 +00:00
pull_request:
types: [opened]
issue_comment:
types: [created]
2022-08-09 18:13:54 +00:00
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: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
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
- 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
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
2022-12-25 15:33:21 +00:00
- if: ${{ github.event_name != 'workflow_dispatch' }}
uses: shpingalet007/pull-request-comment-trigger@696de492b50cee0ba671934893c91c5805a403b9
2022-12-17 14:07:34 +00:00
id: check
with:
trigger: '@bindistTest ** ** **'
reaction: rocket
allow_arguments: true
env:
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
2022-12-25 15:33:21 +00:00
- if: ${{ github.event_name != 'workflow_dispatch' }}
uses: shpingalet007/pull-request-comment-trigger@696de492b50cee0ba671934893c91c5805a403b9
2022-12-17 14:07:34 +00:00
id: checkRef
with:
trigger: '@bindistTestRef ** ** ** **'
reaction: rocket
allow_arguments: true
env:
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
- if: ${{ steps.checkRef.outputs.triggered == 'true' }}
uses: actions/checkout@v3
with:
2023-01-01 08:05:29 +00:00
ref: ${{ fromJson(steps.checkRef.outputs.arguments)[3] }}
2022-12-17 14:07:34 +00:00
- if: ${{ steps.checkRef.outputs.triggered != 'true' }}
uses: actions/checkout@v3
2022-12-25 15:33:21 +00:00
- if: ${{ github.event_name != 'workflow_dispatch' && steps.check.outputs.triggered == 'true' }}
2022-12-17 14:07:34 +00:00
continue-on-error: true
name: Install ghcup and bindist
run: |
2022-12-25 15:33:21 +00:00
export TOOL=${{ fromJson(steps.check.outputs.arguments)[0] }}
export VERSION=${{ fromJson(steps.check.outputs.arguments)[1] }}
export METADATA_FILE=${{ fromJson(steps.check.outputs.arguments)[2] }}
2022-12-17 14:07:34 +00:00
.github/workflows/install-bindist.sh
echo SUCCESS=true >> $GITHUB_ENV
- if: ${{ github.event_name != 'workflow_dispatch' && steps.check.outputs.triggered != 'true' && steps.checkRef.outputs.triggered == 'true' }}
continue-on-error: true
name: Install ghcup and bindist
run: |
2022-12-25 15:33:21 +00:00
export TOOL=${{ fromJson(steps.checkRef.outputs.arguments)[0] }}
export VERSION=${{ fromJson(steps.checkRef.outputs.arguments)[1] }}
export METADATA_FILE=${{ fromJson(steps.checkRef.outputs.arguments)[2] }}
2022-12-17 14:07:34 +00:00
.github/workflows/install-bindist.sh
echo SUCCESS=true >> $GITHUB_ENV
- if: ${{ github.event_name == 'workflow_dispatch' }}
name: Install ghcup and bindist
run: |
.github/workflows/install-bindist.sh
echo SUCCESS=true >> $GITHUB_ENV
- run: |
if [ "${{ env.SUCCESS }}" = "true" ] ; then
echo "true" > message-linux.txt
else
echo "false" > message-linux.txt
fi
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: artifacts
path: |
./message-linux.txt
2022-08-10 17:47:40 +00:00
bindist-install-non-linux:
2022-08-09 18:13:54 +00:00
name: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- macos-11
- macos-12
2022-08-10 17:47:40 +00:00
- windows-latest
2022-08-09 18:13:54 +00:00
runs-on: ${{ matrix.os }}
steps:
2022-12-25 15:33:21 +00:00
- if: ${{ github.event_name != 'workflow_dispatch' }}
uses: shpingalet007/pull-request-comment-trigger@696de492b50cee0ba671934893c91c5805a403b9
2022-12-17 14:07:34 +00:00
id: check
with:
trigger: '@bindistTest ** ** **'
reaction: rocket
allow_arguments: true
env:
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
2022-12-25 15:33:21 +00:00
- if: ${{ github.event_name != 'workflow_dispatch' }}
uses: shpingalet007/pull-request-comment-trigger@696de492b50cee0ba671934893c91c5805a403b9
2022-12-17 14:07:34 +00:00
id: checkRef
with:
trigger: '@bindistTestRef ** ** ** **'
reaction: rocket
allow_arguments: true
env:
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
- if: ${{ steps.checkRef.outputs.triggered == 'true' }}
uses: actions/checkout@v3
with:
2023-01-01 08:05:29 +00:00
ref: ${{ fromJson(steps.checkRef.outputs.arguments)[3] }}
2022-12-17 14:07:34 +00:00
- if: ${{ steps.checkRef.outputs.triggered != 'true' }}
uses: actions/checkout@v3
2022-12-25 15:33:21 +00:00
- if: ${{ github.event_name != 'workflow_dispatch' && steps.check.outputs.triggered == 'true' }}
2022-12-17 14:07:34 +00:00
continue-on-error: true
name: Install ghcup and bindist
run: |
2022-12-25 15:33:21 +00:00
export TOOL=${{ fromJson(steps.check.outputs.arguments)[0] }}
export VERSION=${{ fromJson(steps.check.outputs.arguments)[1] }}
export METADATA_FILE=${{ fromJson(steps.check.outputs.arguments)[2] }}
2022-12-17 14:07:34 +00:00
.github/workflows/install-bindist.sh
echo SUCCESS=true >> $GITHUB_ENV
- if: ${{ github.event_name != 'workflow_dispatch' && steps.check.outputs.triggered != 'true' && steps.checkRef.outputs.triggered == 'true' }}
continue-on-error: true
name: Install ghcup and bindist
run: |
2022-12-25 15:33:21 +00:00
export TOOL=${{ fromJson(steps.checkRef.outputs.arguments)[0] }}
export VERSION=${{ fromJson(steps.checkRef.outputs.arguments)[1] }}
export METADATA_FILE=${{ fromJson(steps.checkRef.outputs.arguments)[2] }}
2022-12-17 14:07:34 +00:00
.github/workflows/install-bindist.sh
echo SUCCESS=true >> $GITHUB_ENV
- if: ${{ github.event_name == 'workflow_dispatch' }}
name: Install ghcup and bindist
run: |
.github/workflows/install-bindist.sh
echo SUCCESS=true >> $GITHUB_ENV
- run: |
if [ "${{ env.SUCCESS }}" = "true" ] ; then
echo "true" > message.txt
else
echo "false" > message.txt
fi
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: artifacts
path: |
./message.txt
comment:
name: comment
needs: ["bindist-install", "bindist-install-non-linux"]
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v3
with:
name: artifacts
- run: |
if [ "$(cat message.txt)" == "true" ] && [ "$(cat message-linux.txt)" == "true" ] ; then
echo "SUCCESS=true" >> $GITHUB_ENV
else
echo "SUCCESS=false" >> $GITHUB_ENV
fi
- id: message
run: |
if [ "${{ env.SUCCESS }}" = "true" ] ; then
echo 'MESSAGE=Bindist check success :+1:' >> $GITHUB_OUTPUT
else
echo 'MESSAGE=Bindist check failure :-1:' >> $GITHUB_OUTPUT
fi
- if: ${{ github.event_name == 'pull_request' }}
name: Comment PR
uses: thollander/actions-comment-pull-request@v2
with:
message: |
${{ steps.message.outputs.MESSAGE }}
- name: Check on failures
if: env.SUCCESS != 'true'
run: exit 1