Skip to content

Commit d32c8cf

Browse files
committed
CI build with Github Actions
1 parent e07af92 commit d32c8cf

File tree

2 files changed

+98
-0
lines changed

2 files changed

+98
-0
lines changed

.github/workflows/haskell.yml

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
name: Haskell CI
2+
3+
on: [push]
4+
5+
jobs:
6+
build:
7+
runs-on: ubuntu-18.04
8+
9+
steps:
10+
- uses: actions/checkout@v1
11+
12+
- name: Debugging
13+
env:
14+
BINARY_CACHE_REGION: ${{ secrets.BINARY_CACHE_REGION }}
15+
BINARY_CACHE_THREADS: ${{ secrets.BINARY_CACHE_THREADS }}
16+
BINARY_CACHE_URI: ${{ secrets.BINARY_CACHE_URI }}
17+
run: |
18+
echo "BINARY_CACHE_REGION: $BINARY_CACHE_REGION"
19+
echo "BINARY_CACHE_THREADS: $BINARY_CACHE_THREADS"
20+
echo "BINARY_CACHE_URI: $BINARY_CACHE_URI"
21+
22+
- uses: actions/[email protected]
23+
with:
24+
ghc-version: '8.6.5'
25+
cabal-version: '3.4.0.0'
26+
27+
- name: Install build environment
28+
run: |
29+
sudo apt-get update
30+
sudo apt-get -y install libsodium23 libsodium-dev
31+
sudo apt-get -y install libsystemd0 libsystemd-dev
32+
sudo apt-get -y remove --purge software-properties-common
33+
sudo apt-get -y autoremove
34+
35+
cat >> cabal.project <<EOF
36+
package cardano-crypto-praos
37+
flags: -external-libsodium-vrf
38+
EOF
39+
40+
- name: Install cabal-cache tool
41+
run: |
42+
CACHE_TOOL_TAG=$(curl -s -X GET https://api.github.com/repos/haskell-works/cabal-cache/releases/latest | jq -rc .tag_name)
43+
echo "Downloading: https://github.com/haskell-works/cabal-cache/releases/download/${CACHE_TOOL_TAG}/cabal-cache_x86_64_linux.tar.gz"
44+
curl -Ls https://github.com/haskell-works/cabal-cache/releases/download/${CACHE_TOOL_TAG}/cabal-cache_x86_64_linux.tar.gz | tar -xvz -C /tmp/
45+
sudo cp /tmp/cabal-cache /usr/local/bin/cabal-cache
46+
cabal-cache version
47+
48+
- name: Cabal update
49+
run: cabal update
50+
51+
- name: Cabal Configure
52+
run: cabal configure
53+
54+
- name: Restore cabal cache
55+
env:
56+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
57+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
58+
BINARY_CACHE_REGION: ${{ secrets.BINARY_CACHE_REGION }}
59+
BINARY_CACHE_THREADS: ${{ secrets.BINARY_CACHE_THREADS }}
60+
BINARY_CACHE_URI: ${{ secrets.BINARY_CACHE_URI }}
61+
run: |
62+
cabal-cache sync-from-archive \
63+
--threads "$BINARY_CACHE_THREADS" \
64+
--archive-uri "$BINARY_CACHE_URI" \
65+
--region "$BINARY_CACHE_REGION"
66+
67+
- name: Install dependencies
68+
run: cabal build all --enable-tests --enable-benchmarks --write-ghc-environment-files=always --only-dependencies
69+
70+
- name: Build
71+
run: cabal build all --enable-tests --enable-benchmarks --write-ghc-environment-files=always
72+
73+
- name: Git clone
74+
run: git clone https://github.com/input-output-hk/cardano-mainnet-mirror
75+
76+
- name: Run tests
77+
run: cabal test cardano-cli cardano-node cardano-node-chairman --enable-tests --enable-benchmarks --write-ghc-environment-files=always --test-show-details=direct --test-options='+RTS -g1'
78+
79+
- name: Save cabal cache
80+
if: ${{ always() }}
81+
env:
82+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
83+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
84+
BINARY_CACHE_REGION: ${{ secrets.BINARY_CACHE_REGION }}
85+
BINARY_CACHE_THREADS: ${{ secrets.BINARY_CACHE_THREADS }}
86+
BINARY_CACHE_URI: ${{ secrets.BINARY_CACHE_URI }}
87+
CARDANO_MAINNET_MIRROR: cardano-mainnet-mirror/epoch
88+
run: |
89+
cabal-cache sync-to-archive \
90+
--threads "$BINARY_CACHE_THREADS" \
91+
--archive-uri "$BINARY_CACHE_URI" \
92+
--region "$BINARY_CACHE_REGION"

cabal.project

+6
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@ package small-steps
7171
package small-steps-test
7272
tests: False
7373

74+
package goblins
75+
tests: False
76+
77+
package io-sim-classes
78+
tests: False
79+
7480
-- ---------------------------------------------------------
7581

7682

0 commit comments

Comments
 (0)