CI using deploy keys of plutarch-*

Simplified workflow using `strategy.matrix`
This commit is contained in:
Seungheon Oh 2022-05-27 13:48:53 -05:00
parent 7a0f9e9a66
commit 16b1f6ad4b
17 changed files with 50 additions and 93 deletions

View file

@ -15,11 +15,21 @@ on:
- "flake.lock" - "flake.lock"
- "agora.cabal" - "agora.cabal"
jobs: jobs:
check-formatting: flake:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
matrix:
tasks: ["agora", "formatCheck", "benchCheck"]
steps: steps:
- uses: actions/checkout@v2.4.0 - uses: actions/checkout@v2.4.0
- uses: webfactory/ssh-agent@v0.5.4
with:
ssh-private-key: |
${{ secrets.LIQWID_PLUTARCH_EXTRA_PRIVATE }}
${{ secrets.PLUTARCH_NUMERIC_PRIVATE }}
${{ secrets.PLUTARCH_SAFE_MONEY_PRIVATE }}
- uses: cachix/install-nix-action@v16 - uses: cachix/install-nix-action@v16
name: Set up Nix and IOHK caches name: Set up Nix and IOHK caches
with: with:
@ -34,68 +44,21 @@ jobs:
name: mlabs name: mlabs
authToken: ${{ secrets.CACHIX_KEY }} authToken: ${{ secrets.CACHIX_KEY }}
- run: nix build .#checks.x86_64-linux.formatCheck - run: nix build .#checks.x86_64-linux.${{ matrix.tasks }}
name: Run 'formatCheck' from flake.nix name: Run '${{ matrix.tasks }}' from flake.nix
check-bench:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.4.0
- uses: cachix/install-nix-action@v16
name: Set up Nix and IOHK caches
with:
nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: |
trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= iohk.cachix.org-1:DpRUyj7h7V830dp/i6Nti+NEO2/nhblbov/8MW7Rqoo= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
substituters = https://hydra.iohk.io https://iohk.cachix.org https://cache.nixos.org/
experimental-features = nix-command flakes
- uses: cachix/cachix-action@v10
with:
name: mlabs
authToken: ${{ secrets.CACHIX_KEY }}
- run: nix build .#checks.x86_64-linux.benchCheck
name: Run 'benchCheck' from flake.nix
check-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.4.0
- uses: cachix/install-nix-action@v16
name: Set up Nix and IOHK caches
with:
nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: |
trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= iohk.cachix.org-1:DpRUyj7h7V830dp/i6Nti+NEO2/nhblbov/8MW7Rqoo= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
substituters = https://hydra.iohk.io https://iohk.cachix.org https://cache.nixos.org/
experimental-features = nix-command flakes
- uses: cachix/cachix-action@v10
with:
name: mlabs
authToken: ${{ secrets.CACHIX_KEY }}
- name: Add cabal folder to cache
id: cabal
uses: actions/cache@v2.1.4
with:
path: |
~/.cabal/packages
~/.cabal/store
dist-newstyle
key: ${{ runner.os }}-cabal
- name: Build the project
run: nix build .#check.x86_64-linux
haddock: haddock:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2.4.0 - uses: actions/checkout@v2.4.0
- uses: webfactory/ssh-agent@v0.5.4
with:
ssh-private-key: |
${{ secrets.LIQWID_PLUTARCH_EXTRA_PRIVATE }}
${{ secrets.PLUTARCH_NUMERIC_PRIVATE }}
${{ secrets.PLUTARCH_SAFE_MONEY_PRIVATE }}
- uses: cachix/install-nix-action@v16 - uses: cachix/install-nix-action@v16
name: Set up Nix and IOHK caches name: Set up Nix and IOHK caches
with: with:

View file

@ -22,8 +22,8 @@ import Agora.Proposal (ProposalId (..), ProposalThresholds (..))
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
import Plutarch.Api.V1 (mkValidator, validatorHash)
import Data.Tagged (Tagged (..)) import Data.Tagged (Tagged (..))
import Plutarch.Api.V1 (mkValidator, validatorHash)
import Plutus.V1.Ledger.Address (scriptHashAddress) import Plutus.V1.Ledger.Address (scriptHashAddress)
import Plutus.V1.Ledger.Api ( import Plutus.V1.Ledger.Api (
Address, Address,

View file

@ -14,8 +14,8 @@ module Sample.Governor (
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
import Data.Tagged (Tagged (..), untag)
import Plutarch.Api.V1 (mkValidator, validatorHash) import Plutarch.Api.V1 (mkValidator, validatorHash)
import Data.Tagged (Tagged(..), untag)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View file

@ -56,7 +56,7 @@ import Agora.Proposal (
) )
import Agora.Proposal.Time (ProposalStartingTime (ProposalStartingTime), ProposalTimingConfig (..)) import Agora.Proposal.Time (ProposalStartingTime (ProposalStartingTime), ProposalTimingConfig (..))
import Agora.Stake (ProposalLock (ProposalLock), Stake (..), StakeDatum (..)) import Agora.Stake (ProposalLock (ProposalLock), Stake (..), StakeDatum (..))
import Data.Tagged (Tagged(..), untag) import Data.Tagged (Tagged (..), untag)
import Sample.Shared import Sample.Shared
import Test.Util (closedBoundedInterval, datumPair, toDatumHash, updateMap) import Test.Util (closedBoundedInterval, datumPair, toDatumHash, updateMap)

View file

@ -86,13 +86,13 @@ import Agora.Stake (Stake (..))
import Agora.Treasury (treasuryValidator) import Agora.Treasury (treasuryValidator)
import Agora.Utils (validatorHashToTokenName) import Agora.Utils (validatorHashToTokenName)
import Data.Default.Class (Default (..)) import Data.Default.Class (Default (..))
import Data.Tagged (Tagged (..))
import Plutarch.Api.V1 ( import Plutarch.Api.V1 (
mintingPolicySymbol, mintingPolicySymbol,
mkMintingPolicy, mkMintingPolicy,
mkValidator, mkValidator,
validatorHash, validatorHash,
) )
import Data.Tagged (Tagged (..))
import Plutus.V1.Ledger.Address (scriptHashAddress) import Plutus.V1.Ledger.Address (scriptHashAddress)
import Plutus.V1.Ledger.Api ( import Plutus.V1.Ledger.Api (
Address (Address), Address (Address),

View file

@ -27,10 +27,10 @@ import Agora.Stake.Scripts (stakePolicy, stakeValidator)
import Agora.Treasury (treasuryValidator) import Agora.Treasury (treasuryValidator)
import Control.Monad ((>=>)) import Control.Monad ((>=>))
import Data.Aeson qualified as Aeson import Data.Aeson qualified as Aeson
import Data.Tagged (Tagged)
import GHC.Generics qualified as GHC import GHC.Generics qualified as GHC
import Options (Options (..), parseOptions) import Options (Options (..), parseOptions)
import Plutarch.Api.V1 (mintingPolicySymbol, mkMintingPolicy) import Plutarch.Api.V1 (mintingPolicySymbol, mkMintingPolicy)
import Data.Tagged (Tagged)
import Plutus.V1.Ledger.Api (TxOutRef) import Plutus.V1.Ledger.Api (TxOutRef)
import Plutus.V1.Ledger.Value (AssetClass, CurrencySymbol) import Plutus.V1.Ledger.Value (AssetClass, CurrencySymbol)
import Plutus.V1.Ledger.Value qualified as Value import Plutus.V1.Ledger.Value qualified as Value

View file

@ -23,7 +23,6 @@ common lang
pprelude (PPrelude as Prelude) pprelude (PPrelude as Prelude)
default-extensions: default-extensions:
PackageImports
NoStarIsType NoStarIsType
BangPatterns BangPatterns
BinaryLiterals BinaryLiterals
@ -63,6 +62,7 @@ common lang
NumericUnderscores NumericUnderscores
OverloadedLabels OverloadedLabels
OverloadedStrings OverloadedStrings
PackageImports
PartialTypeSignatures PartialTypeSignatures
PatternGuards PatternGuards
PolyKinds PolyKinds
@ -88,7 +88,7 @@ common deps
build-depends: build-depends:
, aeson , aeson
, ansi-terminal , ansi-terminal
, base >=4.14 && <5 , base >=4.14 && <5
, base-compat , base-compat
, bytestring , bytestring
, cardano-prelude , cardano-prelude
@ -96,9 +96,9 @@ common deps
, data-default , data-default
, data-default-class , data-default-class
, generics-sop , generics-sop
, liqwid-plutarch-extra
, plutarch , plutarch
, plutarch-extra , plutarch-extra
, liqwid-plutarch-extra
, plutarch-numeric , plutarch-numeric
, plutarch-safe-money , plutarch-safe-money
, plutus-core , plutus-core
@ -108,11 +108,11 @@ common deps
, prettyprinter , prettyprinter
, recursion-schemes , recursion-schemes
, serialise , serialise
, tagged
, template-haskell , template-haskell
, text , text
, tagged
mixins:
mixins:
common test-deps common test-deps
build-depends: build-depends:

View file

@ -24,8 +24,8 @@ import Plutarch.Api.V1 (
PTxInfo (..), PTxInfo (..),
PTxOut (..), PTxOut (..),
) )
import Plutarch.Api.V1.AssocMap (PMap (PMap))
import Plutarch.Api.V1.AssetClass (passetClass, passetClassValueOf) import Plutarch.Api.V1.AssetClass (passetClass, passetClassValueOf)
import Plutarch.Api.V1.AssocMap (PMap (PMap))
import "plutarch" Plutarch.Api.V1.Value (PValue (PValue)) import "plutarch" Plutarch.Api.V1.Value (PValue (PValue))
import Plutarch.Builtin (pforgetData) import Plutarch.Builtin (pforgetData)
import Plutus.V1.Ledger.Value (AssetClass (AssetClass)) import Plutus.V1.Ledger.Value (AssetClass (AssetClass))

View file

@ -48,18 +48,18 @@ import Agora.Utils (tclet)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
import Data.Tagged (Tagged (..))
import Plutarch.DataRepr ( import Plutarch.DataRepr (
DerivePConstantViaData (..), DerivePConstantViaData (..),
PDataFields, PDataFields,
PIsDataReprInstances (PIsDataReprInstances), PIsDataReprInstances (PIsDataReprInstances),
) )
import Plutarch.Lift (PConstantDecl, PUnsafeLiftDecl (..))
import Data.Tagged (Tagged (..))
import Plutarch.Extra.Comonad (pextract) import Plutarch.Extra.Comonad (pextract)
import Plutarch.Extra.TermCont (pmatchC)
import Plutarch.Lift (PConstantDecl, PUnsafeLiftDecl (..))
import Plutarch.SafeMoney (PDiscrete (..))
import Plutarch.TryFrom (PTryFrom (..)) import Plutarch.TryFrom (PTryFrom (..))
import Plutarch.Unsafe (punsafeCoerce) import Plutarch.Unsafe (punsafeCoerce)
import Plutarch.SafeMoney (PDiscrete (..))
import Plutarch.Extra.TermCont (pmatchC)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View file

@ -114,19 +114,15 @@ import Plutarch.Api.V1.AssetClass (
passetClass, passetClass,
passetClassValueOf, passetClassValueOf,
) )
import Plutarch.Extra.Comonad (pextract)
import Plutarch.Extra.Map ( import Plutarch.Extra.Map (
pkeys, pkeys,
plookup, plookup,
plookup', plookup',
) )
import Plutarch.Extra.Comonad ( pextract)
import Plutarch.SafeMoney (
PDiscrete,
pvalueDiscrete',
)
import Plutarch.TryFrom ()
import Plutarch.SafeMoney (PDiscrete (..))
import Plutarch.Extra.TermCont (pmatchC) import Plutarch.Extra.TermCont (pmatchC)
import Plutarch.SafeMoney (PDiscrete (..), pvalueDiscrete')
import Plutarch.TryFrom ()
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View file

@ -51,6 +51,7 @@ import Agora.SafeMoney (GTTag)
import Agora.Utils (pkeysEqual, pmapMap, pnotNull) import Agora.Utils (pkeysEqual, pmapMap, pnotNull)
import Control.Applicative (Const) import Control.Applicative (Const)
import Control.Arrow (first) import Control.Arrow (first)
import Data.Tagged (Tagged)
import Plutarch.DataRepr (DerivePConstantViaData (..), PDataFields, PIsDataReprInstances (..)) import Plutarch.DataRepr (DerivePConstantViaData (..), PDataFields, PIsDataReprInstances (..))
import Plutarch.Lift ( import Plutarch.Lift (
DerivePConstantViaNewtype (..), DerivePConstantViaNewtype (..),
@ -58,7 +59,6 @@ import Plutarch.Lift (
PUnsafeLiftDecl (..), PUnsafeLiftDecl (..),
) )
import Plutarch.SafeMoney (PDiscrete) import Plutarch.SafeMoney (PDiscrete)
import Data.Tagged (Tagged)
import Plutarch.TryFrom (PTryFrom (PTryFromExcess, ptryFrom')) import Plutarch.TryFrom (PTryFrom (PTryFromExcess, ptryFrom'))
import Plutarch.Unsafe (punsafeCoerce) import Plutarch.Unsafe (punsafeCoerce)
import Plutus.V1.Ledger.Api (DatumHash, PubKeyHash, ValidatorHash) import Plutus.V1.Ledger.Api (DatumHash, PubKeyHash, ValidatorHash)

View file

@ -45,12 +45,11 @@ import Plutarch.Api.V1 (
PValidator, PValidator,
) )
import Plutarch.Api.V1.AssetClass (passetClass, passetClassValueOf) import Plutarch.Api.V1.AssetClass (passetClass, passetClassValueOf)
import Plutarch.Extra.Map (plookup)
import Plutarch.Extra.Comonad (pextract) import Plutarch.Extra.Comonad (pextract)
import Plutarch.Extra.Map (plookup)
import Plutarch.Extra.TermCont (pmatchC)
import Plutarch.SafeMoney (PDiscrete (..)) import Plutarch.SafeMoney (PDiscrete (..))
import Plutus.V1.Ledger.Value (AssetClass (AssetClass)) import Plutus.V1.Ledger.Value (AssetClass (AssetClass))
import Plutarch.Extra.TermCont (pmatchC)
{- | Policy for Proposals. {- | Policy for Proposals.

View file

@ -18,7 +18,7 @@ module Agora.SafeMoney (
import Plutus.V1.Ledger.Value (AssetClass (AssetClass)) import Plutus.V1.Ledger.Value (AssetClass (AssetClass))
import Data.Tagged ( Tagged(Tagged) ) import Data.Tagged (Tagged (Tagged))
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
-- Tags -- Tags

View file

@ -66,8 +66,8 @@ import Agora.Utils (
tcmatch, tcmatch,
) )
import Control.Applicative (Const) import Control.Applicative (Const)
import Data.Tagged (Tagged (..))
import Plutarch.Api.V1.AssetClass (PAssetClass, passetClassValueOf) import Plutarch.Api.V1.AssetClass (PAssetClass, passetClassValueOf)
import Data.Tagged (Tagged (..) )
import Plutarch.SafeMoney (PDiscrete) import Plutarch.SafeMoney (PDiscrete)
import Plutarch.TryFrom (PTryFrom (PTryFromExcess, ptryFrom')) import Plutarch.TryFrom (PTryFrom (PTryFromExcess, ptryFrom'))

View file

@ -27,6 +27,7 @@ import Agora.Utils (
tcmatch, tcmatch,
tctryFrom, tctryFrom,
) )
import Data.Tagged (Tagged (..), untag)
import Plutarch.Api.V1 ( import Plutarch.Api.V1 (
PCredential (PPubKeyCredential, PScriptCredential), PCredential (PPubKeyCredential, PScriptCredential),
PMintingPolicy, PMintingPolicy,
@ -39,8 +40,7 @@ import Plutarch.Api.V1 (
) )
import Plutarch.Api.V1.AssetClass (passetClass, passetClassValueOf, pvalueOf) import Plutarch.Api.V1.AssetClass (passetClass, passetClassValueOf, pvalueOf)
import Plutarch.Internal (punsafeCoerce) import Plutarch.Internal (punsafeCoerce)
import Plutarch.Numeric.Additive ( AdditiveMonoid(zero), AdditiveSemigroup((+)) ) import Plutarch.Numeric.Additive (AdditiveMonoid (zero), AdditiveSemigroup ((+)))
import Data.Tagged (Tagged (..), untag)
import Plutarch.SafeMoney ( import Plutarch.SafeMoney (
pdiscreteValue', pdiscreteValue',
pvalueDiscrete', pvalueDiscrete',

View file

@ -96,14 +96,13 @@ import Plutarch.Api.V1 (
mintingPolicySymbol, mintingPolicySymbol,
mkMintingPolicy, mkMintingPolicy,
) )
import Plutarch.Api.V1.AssocMap (PMap (PMap))
import Plutarch.Api.V1.AssetClass (PAssetClass, passetClassValueOf, pvalueOf) import Plutarch.Api.V1.AssetClass (PAssetClass, passetClassValueOf, pvalueOf)
import Plutarch.Api.V1.AssocMap (PMap (PMap))
import "plutarch" Plutarch.Api.V1.Value (PValue (PValue)) import "plutarch" Plutarch.Api.V1.Value (PValue (PValue))
import Plutarch.Builtin (pforgetData, ppairDataBuiltin) import Plutarch.Builtin (pforgetData, ppairDataBuiltin)
import Plutarch.Extra.Map (pkeys)
import Plutarch.Reducible (Reducible (Reduce)) import Plutarch.Reducible (Reducible (Reduce))
import Plutarch.TryFrom (PTryFrom (PTryFromExcess)) import Plutarch.TryFrom (PTryFrom (PTryFromExcess))
import Plutarch.Extra.Map (pkeys)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
-- TermCont-based combinators. Some of these will live in plutarch eventually. -- TermCont-based combinators. Some of these will live in plutarch eventually.