Skip to content

Merge pull request #16 from tchoutri/setup-rpm-package #131

Merge pull request #16 from tchoutri/setup-rpm-package

Merge pull request #16 from tchoutri/setup-rpm-package #131

Workflow file for this run

name: CI
# Trigger the workflow on push or pull request, but only for the main branch
on:
pull_request:
push:
branches: ['main']
jobs:
generate-matrix:
name: 'Generate matrix from cabal'
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
runs-on: ubuntu-latest
steps:
- name: Extract the tested GHC versions
id: set-matrix
uses: kleidukos/[email protected]
with:
cabal-file: confer.cabal
ubuntu-version: 'latest'
macos-version: 'latest'
version: 0.1.7.0
tests:
name: ${{ matrix.ghc }} on ${{ matrix.os }}
needs: generate-matrix
runs-on: ${{ matrix.os }}
strategy:
matrix: ${{ fromJSON(needs.generate-matrix.outputs.matrix) }}
steps:
- name: Checkout base repo
uses: actions/checkout@v4
- name: "Install tools"
run: |
.github/workflows/install-tools.sh
- name: Set up Haskell
id: setup-haskell
uses: haskell-actions/setup@v2
with:
ghc-version: ${{ matrix.ghc }}
cabal-version: 'latest'
- name: Configure
run: |
ARCHITECTURE=$(uname -m)
echo "ARCH=$ARCHITECTURE" >> $GITHUB_ENV
echo ${{ env.ARCH }}
cabal configure --enable-tests
- name: Freeze
run: cabal freeze --project-file=cabal.release.project
- name: Cache
uses: actions/[email protected]
with:
path: ${{ steps.setup-haskell.outputs.cabal-store }}
key: ${{ runner.os }}-ghc-${{ matrix.ghc }}-${{ hashFiles('**/plan.json') }}
restore-keys: ${{ runner.os }}-ghc-${{ matrix.ghc }}-
- name: Build
run: cabal build --project-file=cabal.release.project
- name: Test
run: cabal test --project-file=cabal.release.project all
- name: Install
run: cabal install --project-file=cabal.release.project --installdir=distribution --install-method=copy
- name: Package the confer-head executable
run: |
CONFER_EXEC=distribution/confer
.github/workflows/process-binaries.sh
DIR=$(dirname $CONFER_EXEC)
FILE=$(basename $CONFER_EXEC)
CONFER_EXEC_TAR=confer-head-${{ runner.os }}-${{ env.ARCH }}.tar.gz
tar -czvf $CONFER_EXEC_TAR -C $DIR $FILE
echo CONFER_EXEC_TAR=$CONFER_EXEC_TAR >> $GITHUB_ENV
- name: Upload the confer-head executable
uses: actions/upload-artifact@v4
with:
name: confer-${{ runner.os }}-${{ env.ARCH }}
path: ${{ env.CONFER_EXEC_TAR }}
# build-alpine:
# name: Build statically linked using alpine
# runs-on: ubuntu-latest
# container: 'alpine:3.19'
# needs: ['tests']
# steps:
# - name: Install extra dependencies
# shell: sh
# run: |
# apk add bash curl sudo jq pkgconfig \
# zlib-dev zlib-static binutils-gold curl \
# gcc g++ gmp-dev libc-dev libffi-dev make \
# musl-dev ncurses-dev perl tar xz git upx
#
# - uses: actions/checkout@v4
#
# - uses: haskell-actions/setup@v2
# id: setup-haskell
# with:
# ghc-version: '9.8.2'
# cabal-version: 'latest'
#
# - name: Configure
# run: |
# ARCHITECTURE=$(uname -m)
# echo "ARCH=$ARCHITECTURE" >> $GITHUB_ENV
# echo ${{ env.ARCH }}
# cabal configure --enable-tests
#
# - name: Freeze
# run: cabal freeze --project-file=cabal.static.project
#
# - uses: actions/cache@v4
# with:
# path: ${{ steps.setup-haskell.outputs.cabal-store }}
# key: ${{ runner.os }}-ghc-${{ steps.setup.outputs.ghc-version }}-${{ hashFiles('**/plan.json') }}
# restore-keys: ${{ runner.os }}-${{ steps.setup.outputs.ghc-version }}-
#
# - name: Build
# run: cabal build --project-file=cabal.static.project
#
# - name: Test
# run: cabal test --project-file=cabal.static.project all
#
# - name: Install
# run: cabal install --project-file=cabal.static.project --installdir=distribution --install-method=copy
#
# - name: Tar cabal head executable
# run: |
# CONFER_EXEC=distribution/confer
# .github/workflows/process-binaries.sh
# DIR=$(dirname $CONFER_EXEC)
# FILE=$(basename $CONFER_EXEC)
# CONFER_EXEC_TAR=confer-head-${{ runner.os }}-static-${{ env.ARCH }}.tar.gz
# tar -czvf $CONFER_EXEC_TAR -C $DIR $FILE
# echo CONFER_EXEC_TAR=$CONFER_EXEC_TAR >> $GITHUB_ENV
#
# - name: Upload confer executable to workflow artifacts
# uses: actions/upload-artifact@v4
# with:
# name: confer-${{ runner.os }}-static-x86_64
# path: ${{ env.CONFER_EXEC_TAR }}
prerelease-head:
name: Create a GitHub prerelease with the binary artifacts
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
needs: ['tests', 'build-alpine']

Check failure on line 148 in .github/workflows/ci.yml

View workflow run for this annotation

GitHub Actions / CI

Invalid workflow file

The workflow is not valid. .github/workflows/ci.yml (Line: 148, Col: 22): Job 'prerelease-head' depends on unknown job 'build-alpine'.
steps:
- uses: actions/download-artifact@v4
with:
name: confer-Linux-x86_64
- uses: actions/download-artifact@v4
with:
name: confer-Linux-static-x86_64
# - uses: actions/download-artifact@v3
# with:
# name: confer-Linux-static-x86_64
- uses: actions/download-artifact@v4
with:
name: confer-macOS-arm64
- name: Create GitHub prerelease
uses: marvinpinto/[email protected]
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
automatic_release_tag: confer-head
prerelease: true
title: confer-head
files: |
confer-head-Linux-x86_64.tar.gz
# confer-head-Linux-static-x86_64.tar.gz
confer-head-macOS-arm64.tar.gz