Skip to content

📜 Haddock Site

📜 Haddock Site #32

Workflow file for this run

# This workflow builds and publishes the Haddock site to:
# https://plutus.cardano.intersectmbo.org/haddock/$version
# And optionally to:
# https://plutus.cardano.intersectmbo.org/haddock/latest
# On push to master, this workflows publishes to:
# https://plutus.cardano.intersectmbo.org/haddock/master
name: "📜 Haddock Site"
on:
push:
branches:
- master
workflow_dispatch:
inputs:
ref:
description: |
The $ref to build off of, e.g. "1.29.0.0", "master", or any other valid git ref.
When making a release, this is usually the version tag, e.g. "1.29.0.0", and will be
equal to the $destination input below. When back-porting this could be a commit sha instead.
required: true
type: string
destination:
description: |
The $destination folder, e.g. when "1.29.0.0" the haddock will be deploy to:
https://plutus.cardano.intersectmbo.org/haddock/1.29.0.0
required: true
type: string
latest:
description: |
If true, then the haddock site will also be deploy to:
https://plutus.cardano.intersectmbo.org/haddock/latest.
You want to leave this to true unless you are deploying old versions or back-porting.
type: boolean
required: true
default: true
jobs:
deploy:
name: Deploy
runs-on: [self-hosted, plutus-shared]
permissions:
contents: write
environment:
name: github-pages
steps:
- name: Checkout
uses: actions/checkout@main
with:
ref: ${{ inputs.ref || github.ref_name }}
- name: Checkout Haddock Script
run: |
git fetch origin master
git checkout origin/master ./scripts/combined-haddock.sh
- name: Build Site
run: |
nix develop --no-warn-dirty --accept-flake-config --command ./scripts/combined-haddock.sh _haddock all
- name: Deploy Site
uses: JamesIves/[email protected]
with:
folder: _haddock
target-folder: haddock/${{ inputs.destination || github.ref_name }}
single-commit: true
- name: Deploy Site (latest)
if: ${{ inputs.latest == true }}
uses: JamesIves/[email protected]
with:
folder: _haddock
target-folder: haddock/latest
single-commit: true
- name: Check Broken Links
run: |
IGNORE_URLS=(
--ignore-url file:///run/github-runner/plutus-shared/.local/state/cabal/store/.*
--ignore-url https://hackage.haskell.org/package/base-4.18.2.1/docs/Data-Semigroup-Internal.html
--ignore-url https://hackage.haskell.org/package/ghc-9.6.5/docs/-/issues/7100
--ignore-url https://hackage.haskell.org/package/ghc-boot-th-9.6.5/docs/GHC-ForeignSrcLang-Type.html
--ignore-url https://hackage.haskell.org/package/ghc-boot-th-9.6.5/docs/GHC-LanguageExtensions-Type.html
--ignore-url https://hackage.haskell.org/package/ghc-boot-th-9.6.5/docs/src/GHC.LanguageExtensions.Type.html
--ignore-url .*/plutus-core/...
--ignore-url .*/plutus-core/AlwaysInline
--ignore-url .*/plutus-core/Barbies-Generics-Traversable.html
--ignore-url .*/plutus-core/Barbies-Internal-Containers.html
--ignore-url .*/plutus-core/Barbies-Internal-Trivial.html
--ignore-url .*/plutus-core/Basement-Bits.html
--ignore-url .*/plutus-core/Basement-Nat.html
--ignore-url .*/plutus-core/Basement-Numerical-Subtractive.html
--ignore-url .*/plutus-core/Basement-PrimType.html
--ignore-url .*/plutus-core/Basement-String-Encoding-ASCII7.html
--ignore-url .*/plutus-core/Basement-String-Encoding-ISO_8859_1.html
--ignore-url .*/plutus-core/Basement-String-Encoding-UTF16.html
--ignore-url .*/plutus-core/Basement-String-Encoding-UTF32.html
--ignore-url .*/plutus-core/Cardano-Crypto-DSIGN-Class.html
--ignore-url .*/plutus-core/Cardano-Crypto-DSIGN-EcdsaSecp256k1.html
--ignore-url .*/plutus-core/Cardano-Crypto-DSIGN-Ed25519.html
--ignore-url .*/plutus-core/Cardano-Crypto-DSIGN-SchnorrSecp256k1.html
--ignore-url .*/plutus-core/Cardano-Crypto-Hash-Class.html
--ignore-url .*/plutus-core/Cardano-Crypto-PackedBytes.html
--ignore-url .*/plutus-core/Cardano-Crypto-PinnedSizedBytes.html
--ignore-url .*/plutus-core/Cek-Internal.html
--ignore-url .*/plutus-core/Codec-CBOR-Read.html
--ignore-url .*/plutus-core/Codec-Serialise-Class.html
--ignore-url .*/plutus-core/Control-Applicative-Backwards.html
--ignore-url .*/plutus-core/Control-Applicative-Lift.html
--ignore-url .*/plutus-core/Control-Comonad-Cofree.html
--ignore-url .*/plutus-core/Control-Comonad-Trans-Cofree.html
--ignore-url .*/plutus-core/Control-Composition.html
--ignore-url .*/plutus-core/Control-Lens-At.html
--ignore-url .*/plutus-core/Control-Lens-Cons.html
--ignore-url .*/plutus-core/Control-Lens-Each.html
--ignore-url .*/plutus-core/Control-Lens-Internal-Exception.html
--ignore-url .*/plutus-core/Control-Lens-Internal-Indexed.html
--ignore-url .*/plutus-core/Control-Lens-Internal-Iso.html
--ignore-url .*/plutus-core/Control-Lens-Internal-Prism.html
--ignore-url .*/plutus-core/Control-Lens-Plated.html
--ignore-url .*/plutus-core/Control-Lens-Reified.html
--ignore-url .*/plutus-core/Control-Lens-Wrapped.html
--ignore-url .*/plutus-core/Control-Lens-Zoom.html
--ignore-url .*/plutus-core/Control-Monad-Free-Class.html
--ignore-url .*/plutus-core/Control-Monad-Free.html
--ignore-url .*/plutus-core/Control-Monad-Primitive.html
--ignore-url .*/plutus-core/Control-Monad-Trans-Accum.html
--ignore-url .*/plutus-core/Control-Monad-Trans-Cont.html
--ignore-url .*/plutus-core/Control-Monad-Trans-Except.html
--ignore-url .*/plutus-core/Control-Monad-Trans-Free.html
--ignore-url .*/plutus-core/Control-Monad-Trans-Identity.html
--ignore-url .*/plutus-core/Control-Monad-Trans-Maybe.html
--ignore-url .*/plutus-core/Control-Monad-Trans-RWS-CPS.html
--ignore-url .*/plutus-core/Control-Monad-Trans-RWS-Lazy.html
--ignore-url .*/plutus-core/Control-Monad-Trans-RWS-Strict.html
--ignore-url .*/plutus-core/Control-Monad-Trans-Reader.html
--ignore-url .*/plutus-core/Control-Monad-Trans-Resource-Internal.html
--ignore-url .*/plutus-core/Control-Monad-Trans-Select.html
--ignore-url .*/plutus-core/Control-Monad-Trans-State-Lazy.html
--ignore-url .*/plutus-core/Control-Monad-Trans-State-Strict.html
--ignore-url .*/plutus-core/Control-Monad-Trans-Writer-CPS.html
--ignore-url .*/plutus-core/Control-Monad-Trans-Writer-Lazy.html
--ignore-url .*/plutus-core/Control-Monad-Trans-Writer-Strict.html
--ignore-url .*/plutus-core/Control-Search.html
--ignore-url .*/plutus-core/CostModelGeneration.html
--ignore-url .*/plutus-core/Crypto-ECC-Ed25519Donna.html
--ignore-url .*/plutus-core/Crypto-Error-Types.html
--ignore-url .*/plutus-core/Crypto-Hash-Types.html
--ignore-url .*/plutus-core/Data-Aeson-Key.html
--ignore-url .*/plutus-core/Data-Aeson-KeyMap.html
--ignore-url .*/plutus-core/Data-Aeson-Types-FromJSON.html
--ignore-url .*/plutus-core/Data-Aeson-Types-Internal.html
--ignore-url .*/plutus-core/Data-Aeson-Types-ToJSON.html
--ignore-url .*/plutus-core/Data-Attoparsec-Internal-Types.html
--ignore-url .*/plutus-core/Data-Bifunctor-Biff.html
--ignore-url .*/plutus-core/Data-Bifunctor-Clown.html
--ignore-url .*/plutus-core/Data-Bifunctor-Fix.html
--ignore-url .*/plutus-core/Data-Bifunctor-Flip.html
--ignore-url .*/plutus-core/Data-Bifunctor-Join.html
--ignore-url .*/plutus-core/Data-Bifunctor-Joker.html
--ignore-url .*/plutus-core/Data-Bifunctor-Product.html
--ignore-url .*/plutus-core/Data-Bifunctor-Sum.html
--ignore-url .*/plutus-core/Data-Bifunctor-Tannen.html
--ignore-url .*/plutus-core/Data-Bifunctor-Wrapped.html
--ignore-url .*/plutus-core/Data-Bimap.html
--ignore-url .*/plutus-core/Data-ByteString-Convert.html
--ignore-url .*/plutus-core/Data-ByteString-Internal-Type.html
--ignore-url .*/plutus-core/Data-ByteString-Lazy-Internal.html
--ignore-url .*/plutus-core/Data-ByteString-Short-Internal.html
--ignore-url .*/plutus-core/Data-Csv-Conversion.html
--ignore-url .*/plutus-core/Data-DList-DNonEmpty-Internal.html
--ignore-url .*/plutus-core/Data-DList-Internal.html
--ignore-url .*/plutus-core/Data-Default-Class.html
--ignore-url .*/plutus-core/Data-Dependent-Sum.html
--ignore-url .*/plutus-core/Data-Fix.html
--ignore-url .*/plutus-core/Data-Functor-Base.html
--ignore-url .*/plutus-core/Data-Functor-Constant.html
--ignore-url .*/plutus-core/Data-Functor-Foldable.html
--ignore-url .*/plutus-core/Data-Functor-Reverse.html
--ignore-url .*/plutus-core/Data-Functor-These.html
--ignore-url .*/plutus-core/Data-Functor-Yoneda.html
--ignore-url .*/plutus-core/Data-GADT-DeepSeq.html
--ignore-url .*/plutus-core/Data-GADT-Internal.html
--ignore-url .*/plutus-core/Data-HashMap-Internal-Array.html
--ignore-url .*/plutus-core/Data-HashMap-Internal.html
--ignore-url .*/plutus-core/Data-HashMap-Monoidal.html
--ignore-url .*/plutus-core/Data-HashSet-Internal.html
--ignore-url .*/plutus-core/Data-Hashable-Class.html
--ignore-url .*/plutus-core/Data-IntMap-Internal.html
--ignore-url .*/plutus-core/Data-IntSet-Internal.html
--ignore-url .*/plutus-core/Data-Map-Internal.html
--ignore-url .*/plutus-core/Data-MonoTraversable.html
--ignore-url .*/plutus-core/Data-MultiSet.html
--ignore-url .*/plutus-core/Data-Primitive-Array.html
--ignore-url .*/plutus-core/Data-Primitive-PrimArray.html
--ignore-url .*/plutus-core/Data-Primitive-SmallArray.html
--ignore-url .*/plutus-core/Data-Primitive-Types.html
--ignore-url .*/plutus-core/Data-Profunctor-Choice.html
--ignore-url .*/plutus-core/Data-Profunctor-Closed.html
--ignore-url .*/plutus-core/Data-Profunctor-Composition.html
--ignore-url .*/plutus-core/Data-Profunctor-Mapping.html
--ignore-url .*/plutus-core/Data-Profunctor-Strong.html
--ignore-url .*/plutus-core/Data-Profunctor-Types.html
--ignore-url .*/plutus-core/Data-Profunctor-Unsafe.html
--ignore-url .*/plutus-core/Data-RAList-Tree-Internal.html
--ignore-url .*/plutus-core/Data-Reflection.html
--ignore-url .*/plutus-core/Data-Scientific.html
--ignore-url .*/plutus-core/Data-Semigroup-Traversable-Class.html
--ignore-url .*/plutus-core/Data-Sequence-Internal.html
--ignore-url .*/plutus-core/Data-Sequences.html
--ignore-url .*/plutus-core/Data-Set-Internal.html
--ignore-url .*/plutus-core/Data-Some-GADT.html
--ignore-url .*/plutus-core/Data-Some-Newtype.html
--ignore-url .*/plutus-core/Data-Stream.html
--ignore-url .*/plutus-core/Data-Strict-Either.html
--ignore-url .*/plutus-core/Data-Strict-Maybe.html
--ignore-url .*/plutus-core/Data-Strict-These.html
--ignore-url .*/plutus-core/Data-Strict-Tuple.html
--ignore-url .*/plutus-core/Data-Tagged.html
--ignore-url .*/plutus-core/Data-Text-Encoding-Error.html
--ignore-url .*/plutus-core/Data-Text-Short-Internal.html
--ignore-url .*/plutus-core/Data-These.html
--ignore-url .*/plutus-core/Data-Time-Calendar-Days.html
--ignore-url .*/plutus-core/Data-Time-Clock-Internal-DiffTime.html
--ignore-url .*/plutus-core/Data-Time-Clock-Internal-NominalDiffTime.html
--ignore-url .*/plutus-core/Data-Time-Clock-Internal-UTCTime.html
--ignore-url .*/plutus-core/Data-Time-Clock-Internal-UniversalTime.html
--ignore-url .*/plutus-core/Data-Time-LocalTime-Internal-LocalTime.html
--ignore-url .*/plutus-core/Data-Time-LocalTime-Internal-ZonedTime.html
--ignore-url .*/plutus-core/Data-Tree.html
--ignore-url .*/plutus-core/Data-Tuple-Only.html
--ignore-url .*/plutus-core/Data-UUID-Types-Internal-Builder.html
--ignore-url .*/plutus-core/Data-UUID-Types-Internal.html
--ignore-url .*/plutus-core/Data-Vector-Primitive.html
--ignore-url .*/plutus-core/Data-Vector-Storable.html
--ignore-url .*/plutus-core/Data-Vector-Unboxed-Base.html
--ignore-url .*/plutus-core/Data-Vector.html
--ignore-url .*/plutus-core/Data.html
--ignore-url .*/plutus-core/Flat-Decoder-Types.html
--ignore-url .*/plutus-core/Flat-Filler.html
--ignore-url .*/plutus-core/GHC-Exts-Heap-ClosureTypes.html
--ignore-url .*/plutus-core/GHC-Exts-Heap-Closures.html
--ignore-url .*/plutus-core/GHC-Exts-Heap-InfoTable-Types.html
--ignore-url .*/plutus-core/GHC-Exts-Heap-ProfInfo-Types.html
--ignore-url .*/plutus-core/Hedgehog-Internal-Gen.html
--ignore-url .*/plutus-core/Hedgehog-Internal-Property.html
--ignore-url .*/plutus-core/Hedgehog-Internal-Tree.html
--ignore-url .*/plutus-core/Inline-CallSiteInline.html
--ignore-url .*/plutus-core/Language-Haskell-TH-Datatype.html
--ignore-url .*/plutus-core/Lens-Micro-Internal.html
--ignore-url .*/plutus-core/ListT.html
--ignore-url .*/plutus-core/N
--ignore-url .*/plutus-core/Network-URI.html
--ignore-url .*/plutus-core/NoThunks-Class.html
--ignore-url .*/plutus-core/Numeric-Half-Internal.html
--ignore-url .*/plutus-core/PLC.html
--ignore-url .*/plutus-core/PlutusLedgerApi-Common-SerialisedScript.html
--ignore-url .*/plutus-core/Prettyprinter-Internal.html
--ignore-url .*/plutus-core/Prismatically.html
--ignore-url .*/plutus-core/System-Console-Terminal-Common.html
--ignore-url .*/plutus-core/System-OsString-Internal-Types-Hidden.html
--ignore-url .*/plutus-core/System-Random-Internal.html
--ignore-url .*/plutus-core/System-Random-Stateful.html
--ignore-url .*/plutus-core/Test-QuickCheck-Arbitrary.html
--ignore-url .*/plutus-core/Test-QuickCheck-Function.html
--ignore-url .*/plutus-core/Test-QuickCheck-Gen.html
--ignore-url .*/plutus-core/Test-QuickCheck-GenT-Private.html
--ignore-url .*/plutus-core/Test-QuickCheck-GenT.html
--ignore-url .*/plutus-core/Test-QuickCheck-Modifiers.html
--ignore-url .*/plutus-core/Test-QuickCheck-Property.html
--ignore-url .*/plutus-core/Text-Megaparsec-Error.html
--ignore-url .*/plutus-core/Text-Megaparsec-Internal.html
--ignore-url .*/plutus-core/Text-Megaparsec-Pos.html
--ignore-url .*/plutus-core/Text-Megaparsec-State.html
--ignore-url .*/plutus-core/Text-PrettyPrint-Annotated-WL.html
--ignore-url .*/plutus-core/Utils.html
--ignore-url .*/plutus-core/WithIndex.html
--ignore-url .*/plutus-core/Witherable.html
--ignore-url .*/plutus-core/a_non_-
--ignore-url .*/plutus-core/folder
--ignore-url .*/plutus-core/input
--ignore-url .*/plutus-core/just_case_body
--ignore-url .*/plutus-core/name
--ignore-url .*/plutus-core/nothing_case_body
--ignore-url .*/plutus-ghc-stub/=
--ignore-url .*/plutus-ledger-api/Alonzo.html
--ignore-url .*/plutus-ledger-api/Control-Lens-Wrapped.html
--ignore-url .*/plutus-ledger-api/Control-Monad-Error-Class.html
--ignore-url .*/plutus-ledger-api/Control-Monad-Free.html
--ignore-url .*/plutus-ledger-api/Control-Monad-Trans-Free.html
--ignore-url .*/plutus-ledger-api/Control-Monad-Trans-Resource-Internal.html
--ignore-url .*/plutus-ledger-api/Crypto.html
--ignore-url .*/plutus-ledger-api/Data-Aeson-Types-FromJSON.html
--ignore-url .*/plutus-ledger-api/Data-Aeson-Types-ToJSON.html
--ignore-url .*/plutus-ledger-api/Data-Functor-Rep.html
--ignore-url .*/plutus-ledger-api/Data-Profunctor-Choice.html
--ignore-url .*/plutus-ledger-api/Data-Profunctor-Rep.html
--ignore-url .*/plutus-ledger-api/Data-Profunctor-Unsafe.html
--ignore-url .*/plutus-ledger-api/Data-Semigroup-Traversable-Class.html
--ignore-url .*/plutus-ledger-api/Data-Tagged.html
--ignore-url .*/plutus-ledger-api/Data-Time-Clock-POSIX.html
--ignore-url .*/plutus-ledger-api/GHC.html
--ignore-url .*/plutus-ledger-api/Hedgehog-Internal-Gen.html
--ignore-url .*/plutus-ledger-api/Hedgehog-Internal-Property.html
--ignore-url .*/plutus-ledger-api/Hedgehog-Internal-Tree.html
--ignore-url .*/plutus-ledger-api/ListT.html
--ignore-url .*/plutus-ledger-api/Prettyprinter-Internal.html
--ignore-url .*/plutus-tx-plugin/level
--ignore-url .*/plutus-tx/-
--ignore-url .*/plutus-tx/Algebra-Graph-Class.html
--ignore-url .*/plutus-tx/Basement-Bits.html
--ignore-url .*/plutus-tx/Basement-Monad.html
--ignore-url .*/plutus-tx/Basement-Numerical-Subtractive.html
--ignore-url .*/plutus-tx/Codec-Serialise-Class.html
--ignore-url .*/plutus-tx/Comment.html
--ignore-url .*/plutus-tx/Control-Lens-At.html
--ignore-url .*/plutus-tx/Control-Lens-Each.html
--ignore-url .*/plutus-tx/Control-Lens-Empty.html
--ignore-url .*/plutus-tx/Control-Monad-Error-Class.html
--ignore-url .*/plutus-tx/Control-Monad-Trans-Control.html
--ignore-url .*/plutus-tx/Data-Aeson-Types-FromJSON.html
--ignore-url .*/plutus-tx/Data-Aeson-Types-ToJSON.html
--ignore-url .*/plutus-tx/Data-Default-Class.html
--ignore-url .*/plutus-tx/Data-Functor-Foldable.html
--ignore-url .*/plutus-tx/Data-Hashable-Class.html
--ignore-url .*/plutus-tx/Data-Map-Lazy.html
--ignore-url .*/plutus-tx/Data-MonoTraversable.html
--ignore-url .*/plutus-tx/Data-Reflection.html
--ignore-url .*/plutus-tx/Data-Semigroup-Traversable-Class.html
--ignore-url .*/plutus-tx/Data-Vector-Unboxed-Base.html
--ignore-url .*/plutus-tx/Data.html
--ignore-url .*/plutus-tx/Description.html
--ignore-url .*/plutus-tx/GHC.html
--ignore-url .*/plutus-tx/Lens-Micro-Internal.html
--ignore-url .*/plutus-tx/P.html
--ignore-url .*/plutus-tx/PlutusTx-AssocMap-Map.html
--ignore-url .*/plutus-tx/Prettyprinter-Internal.html
--ignore-url .*/plutus-tx/Safe.html
--ignore-url .*/plutus-tx/System-Random-Internal.html
--ignore-url .*/plutus-tx/Text-PrettyPrint-Annotated-WL.html
--ignore-url .*/plutus-tx/Title.html
--ignore-url .*/plutus-tx/Unrolling.html
--ignore-url .*/plutus-tx/WithIndex.html
--ignore-url .*/prettyprinter-configurable/Prettyprinter.html
--ignore-url .*/plutus-core/src
--ignore-url .*/plutus-tx/src
--ignore-url .*/prettyprinter-configurable/src
)
URL="https://plutus.cardano.intersectmbo.org/haddock/${{ inputs.destination || github.ref_name }}"
nix develop --no-warn-dirty --accept-flake-config --command \
linkchecker --no-warnings --check-extern --output failures "${URL}" "${IGNORE_URLS}"
if [ $? -ne 0 ]; then
echo "${URL} has broken links, see output above"
exit 1
fi