Skip to content

Fix CI

Fix CI #23

Workflow file for this run

name: Pre-release build
on:
workflow_dispatch:
pull_request:
paths:
- '**.hs'
- 'stack.yaml'
- 'package.yaml'
- '**.cabal'
- '.github/workflows/pre-release.yml'
push:
branches:
- main
paths:
- '**.hs'
- 'stack.yaml'
- 'package.yaml'
- '**.cabal'
- '.github/workflows/pre-release.yml'
tags-ignore:
- 'v[0-9]+.[0-9]+.[0-9]+'
jobs:
build-binaries:
name: Build and upload binaries (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
extra-build-args: -j2
- os: macos-latest
extra-build-args: -j3
- os: windows-latest
extra-build-args: -j2
steps:
# SETUP
- name: Checkout repo
uses: actions/checkout@v4
- uses: haskell-actions/setup@v2
id: setup-haskell-cabal
with:
ghc-version: '9.6.5'
# CACHING
- name: Cache ~/.cabal/store
uses: actions/cache@v4
with:
path: ${{ steps.setup-haskell-cabal.outputs.cabal-store }}
key: ${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }}
- name: Build binary (${{ runner.os }})
shell: bash
run: |
mkdir "$(pwd)/asmh-${{ runner.os }}"
cabal install exe:asmh --install-method=copy --overwrite-policy=always --installdir="$(pwd)/asmh-${{ runner.os }}" --ghc-options=-O2 ${{ matrix.extra-build-args }}
# UPLOAD BINARIES
- name: Compress dirs (Unix)
if: matrix.os != 'windows-latest'
shell: bash
run: zip -r asmh-${{ runner.os }}.zip asmh-${{ runner.os }}
- name: Compress dirs (Windows)
if: matrix.os == 'windows-latest'
shell: pwsh
run: Compress-Archive -Path "asmh-${{ runner.os }}" -DestinationPath "asmh-${{ runner.os }}.zip"
- name: Upload artifact (${{ runner.os }})
uses: actions/upload-artifact@v3
with:
name: asmh-${{ runner.os }}
path: asmh-${{ runner.os }}.zip
if-no-files-found: error
pre-release:
name: "Pre Release"
needs: build-binaries
if: github.event_name != 'pull_request'
permissions:
contents: write
runs-on: "ubuntu-latest"
steps:
- uses: actions/download-artifact@v3
- name: Check artifacts
run: ls -R
- name: Create short commit sha
run: echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c 1-10)" >> $GITHUB_ENV
- name: Release
uses: softprops/action-gh-release@v2
with:
name: Pre-release ${{ env.GITHUB_SHA_SHORT }}
draft: false
prerelease: true
tag_name: Pre-release-${{ env.GITHUB_SHA_SHORT }}
fail_on_unmatched_files: true
generate_release_notes: true
files: 'asmh-**/asmh-*'