Skip to content

Merge pull request #5 from pragma-org/read-ledgerdb-config #65

Merge pull request #5 from pragma-org/read-ledgerdb-config

Merge pull request #5 from pragma-org/read-ledgerdb-config #65

Workflow file for this run

name: Haskell CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
permissions:
contents: read
jobs:
build:
strategy:
matrix:
os: [ linux, macos ]
arch: [ x86_64, aarch64 ]
exclude:
- os: macos
arch: x86_64
runs-on: ${{ matrix.arch == 'x86_64' && 'ubuntu-latest' || (matrix.os == 'linux' && 'ubuntu-24.04-arm' || 'macos-latest') }}
steps:
- name: πŸ“₯ Checkout code
uses: actions/checkout@v4
- name: βœ… Tag build artifacts
id: tag
shell: bash
run: |
echo "value=$GIT_SHA" >> $GITHUB_OUTPUT
env:
GIT_SHA: ${{ github.sha }}
- name: πŸ— Setup GHC
uses: haskell-actions/setup@v2
with:
ghc-version: '9.4.8'
cabal-version: '3.12.1.0'
- name: ❄ Cache
uses: actions/cache@v3
env:
cache-name: cache-cabal
with:
path: |
~/.cabal
~/.local
key: ${{ runner.os }}-${{ runner.arch }}-build-${{ env.cache-name }}-${{ hashFiles('**/*.cabal') }}-${{ hashFiles('**/cabal.project') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-build-${{ env.cache-name }}-
${{ runner.os }}-${{ runner.arch }}-build-
${{ runner.os }}-${{ runner.arch }}-
- name: πŸš„ Prepare OS
if: ${{ matrix.os == 'macos' }}
run: |
brew install autoconf automake libtool
- name: πŸ›  Build
run: |
./build.hs
tar cvf artifact.tar -C bin db-server
- name: 🚒 Upload archive
uses: actions/upload-artifact@v4.4.0
with:
name: db-server-${{ steps.tag.outputs.value }}-${{ matrix.arch }}-${{ matrix.os }}
path: artifact.tar
overwrite: true