wip #11
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci-linux | |
on: | |
pull_request: | |
push: | |
paths: | |
- '.github/workflows/ci-linux.yaml' | |
- 'cabal.project' | |
- '*/src/**' | |
# INFO: The following configuration block ensures that only one build runs per branch, | |
# which may be desirable for projects with a costly build process. | |
# Remove this block from the CI workflow to let each CI job run to completion. | |
concurrency: | |
group: build-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
# install deps. | |
- name: install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libsystemd-dev | |
# cache libsodium | |
- name: cache libsodium-1.0.18 | |
id: libsodium | |
uses: actions/cache@v2 | |
with: | |
path: ~/libsodium-stable | |
key: ${{ runner.os }}-libsodium-1.0.18 | |
# install libsodium with cache | |
- name: Install cache libsodium-1.0.18 | |
if: steps.libsodium.outputs.cache-hit == 'true' | |
run: cd ~/libsodium-stable && ./configure && make -j2 && sudo make install | |
# download & install libsodium without cache | |
- name: Install libsodium | |
if: steps.libsodium.outputs.cache-hit != 'true' | |
run: | | |
wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18-stable.tar.gz | |
tar -xvzf libsodium-1.0.18-stable.tar.gz -C ~ | |
cd ~/libsodium-stable | |
./configure | |
make -j2 && make check | |
sudo make install | |
cd - | |
# cache secp256K1 | |
- name: cache libsecp256k1 | |
id: libsecp256k1 | |
uses: actions/cache@v2 | |
with: | |
path: ~/secp256k1 | |
key: libsecp256k1 | |
# install libsecp256k1 with cache | |
- name: Install cache libsecp256k1 | |
if: steps.libsecp256k1.outputs.cache-hit == 'true' | |
run: | | |
cd ~/secp256k1 | |
./autogen.sh | |
./configure --enable-module-schnorrsig --enable-experimental | |
make | |
sudo make install | |
cd - | |
# download & install secp256k1 without cache | |
- name: Install libsecp256k1 | |
if: steps.libsecp256k1.outputs.cache-hit != 'true' | |
run: | | |
git clone https://github.com/bitcoin-core/secp256k1 ~/secp256k1 | |
cd ~/secp256k1 | |
git checkout ac83be33 | |
./autogen.sh | |
./configure --enable-module-schnorrsig --enable-experimental | |
make | |
sudo make install | |
cd - | |
# set up environment variables | |
- name: Setup environment variables | |
run: | | |
echo "LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
echo "PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV | |
- uses: actions/checkout@v4 | |
- uses: haskell-actions/setup@v2 | |
id: setup | |
with: | |
ghc-version: '8.10' # Resolves to the latest point release of GHC 8.10 | |
cabal-version: '3.6.0.0' # Exact version of Cabal | |
- name: Set up cabal.project.local | |
run: | | |
echo "package cardano-crypto-praos" >> cabal.project.local | |
echo " flags: -external-libsodium-vrf" >> cabal.project.local | |
- name: Cached Dependencies | |
uses: actions/cache@v2 | |
id: cabal-cache | |
with: | |
path: | | |
cabal.project.local | |
${{ steps.setup.outputs.cabal-store }} | |
key: ${{ hashFiles('**/*.cabal', '**/cabal.project') }} | |
- name: Install dependencies | |
if: steps.cabal-cache.outputs.cache-hit != 'true' | |
run: cabal build all --only-dependencies | |
test: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: haskell-actions/setup@v2 | |
id: setup | |
with: | |
ghc-version: '8.10' | |
cabal-version: '3.6.0.0' | |
- name: Cached Dependencies | |
uses: actions/cache@v2 | |
id: cabal-cache | |
with: | |
path: | | |
cabal.project.local | |
${{ steps.setup.outputs.cabal-store }} | |
key: ${{ hashFiles('**/*.cabal', '**/cabal.project', 'cabal.project.local') }} | |
- name: Build dependencies for integration test | |
run: | | |
cabal install -j cardano-node cardano-cli --overwrite-policy=always | |
cabal install -j convex-wallet --overwrite-policy=always | |
echo "/home/runner/.cabal/bin" >> $GITHUB_PATH | |
- name: Test all | |
run: cabal test all |