Skip to content

feat: Add link checker to Actions #573

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/workflows/external-link-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Link Checker

on:
# This workflow requires pull_request and won't work with pull_request_target
# due to github permissions
pull_request:
types:
- opened
- reopened
- synchronize
- closed
# Uncomment the following lines to have the cronjob running daily
#repository_dispatch:
#workflow_dispatch:
#schedule:
#- cron: "00 18 * * *"

jobs:
link-check:
runs-on: ubuntu-latest
permissions:
issues: write # required for peter-evans/create-issue-from-file
steps:
- uses: actions/checkout@v4

- name: Link Checker
id: lychee
uses: lycheeverse/lychee-action@v2

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'Link Checker' step
Uses Step: lychee
uses 'lycheeverse/lychee-action' with ref 'v2', not a pinned commit hash
with:
args: -b . --verbose --no-progress --exclude '%23.*' './**/*.md'
fail: true

# Uncomment this if you want issues to be created for every dead link
#- name: Create Issue From File
#if: steps.lychee.outputs.exit_code != 0
#uses: peter-evans/create-issue-from-file@v5
#with:
#title: Link Checker Report
#content-filepath: ./lychee/out.md
#labels: report, automated issue
4 changes: 0 additions & 4 deletions .vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -354,10 +354,6 @@ function sidebarHome() {
collapsed: true,
items: [
{ text: "Overview", link: "/blog/overview" },
{
text: "Sovereign rollups on Bitcoin with Rollkit",
link: "/blog/sovereign-rollups-on-bitcoin",
},
{
text: "Rollkit: The First Sovereign Rollup Framework",
link: "/blog/rollkit-the-first-sovereign-rollup-framework",
Expand Down
1 change: 0 additions & 1 deletion blog/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ Welcome to our blog! Here, you'll find a variety of articles on a range of topic

## Table of contents

- [Sovereign rollups on Bitcoin with Rollkit](/blog/sovereign-rollups-on-bitcoin)
- [Rollkit: The First Sovereign Rollup Framework](/blog/rollkit-the-first-sovereign-rollup-framework.md)

Stay tuned for more exciting content!
4 changes: 2 additions & 2 deletions blog/rollkit-the-first-sovereign-rollup-framework.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import Twitter from '../.vitepress/components/twitter.vue'

By Rollkit

![Rollkit blog cover](/img/Rollkit-cover.jpg)
![Rollkit blog cover](/public/img/Rollkit-cover.jpg)

Bitcoin to Ethereum took 7 years. Ethereum to more scalable alt-L1s took 1–2 years. And then Cosmos SDK and CometBFT brought down time-to-launch a sovereign L1 to months.

Expand All @@ -33,7 +33,7 @@ Sovereign rollups combine the self-governance of a Layer 1 with the ease of depl

Without the overhead of a settlement layer, sovereign rollups can directly interoperate with shared security when using the same DA layer.

By using a generic application interface like [ABCI++](https://docs.cometbft.com/v0.38/spec/abci/), Rollkit is compatible with the Cosmos SDK, the leading framework for building sovereign blockchains. This enables all Cosmos SDK developers to build a sovereign rollup and tap into all the powerful cosmos ecosystem tooling they’re used to including [IBC](https://www.ibcprotocol.dev/), [ABCI++](https://docs.cometbft.com/v0.38/spec/abci/), and Skip Protocol's [Slinky](https://docs.skip.money/slinky/overview/) and [BlockSDK](https://skip-protocol-docs.netlify.app/blocksdk/overview).
By using a generic application interface like [ABCI++](https://docs.cometbft.com/v0.38/spec/abci/), Rollkit is compatible with the Cosmos SDK, the leading framework for building sovereign blockchains. This enables all Cosmos SDK developers to build a sovereign rollup and tap into all the powerful cosmos ecosystem tooling they’re used to including [IBC](https://www.ibcprotocol.dev/), [ABCI++](https://docs.cometbft.com/v0.38/spec/abci/), and Skip Protocol's [Slinky](https://docs.skip.money/slinky/overview/) and BlockSDK.

Developers have full-freedom to deploy a VM or define their own execution environment, unconstrained by the overhead of an enshrined settlement layer that must process fraud or ZK proofs for their rollups. This means that instead of a canonical on-chain light client that comes with an enshrined settlement layer, sovereign rollups can define how they interoperate with other blockchains by having on-chain light clients of each other as needed.

Expand Down
75 changes: 0 additions & 75 deletions blog/sovereign-rollups-on-bitcoin.md

This file was deleted.

2 changes: 1 addition & 1 deletion guides/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@ instrumentation:
**Description:**
The network address (host:port) where the Prometheus metrics server will listen for scraping requests.

See [Metrics](./metrics.md) for more details on what metrics are exposed.
See [Metrics](/guides/metrics.md) for more details on what metrics are exposed.

**YAML:**

Expand Down
4 changes: 2 additions & 2 deletions guides/create-genesis.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This guide will walk you through the process of setting up a genesis for your ro

For this guide you need to have a chain directory where you have created and built your chain.

If you don't have a chain directory yet, you can initialize a simple ignite chain by following [this guide](./ignite-rollkit.md)
If you don't have a chain directory yet, you can initialize a simple ignite chain by following [this tutorial](/tutorials/gm-world.md)

:::tip
This guide will use the simple ignite chain created in linked guide. Make sure to update any relevant variables to match your chain.
Expand All @@ -27,7 +27,7 @@ STAKING_AMOUNT="1000000000stake"

## 2. Rebuild your chain

Ensure that `rollkit.toml` is present in the root of your rollup directory (if not, follow a [Guide](/guides/use-rollkit-cli) to set it up) and run the following command to (re)generate an entrypoint binary out of the code:
Ensure that `rollkit.toml` is present in the root of your rollup directory (if not, follow a [Guide](/tutorials/gm-world.md) to set it up) and run the following command to (re)generate an entrypoint binary out of the code:

```sh
rollkit rebuild
Expand Down
4 changes: 2 additions & 2 deletions guides/cw-orch.md
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ Now that you workspace is setup, you can [integrate with single contracts](#sing

You can find more example interactions on the `counter-contract` example directly in the `cw-orchestrator` repo:

- Some examples <a href="https://github.com/AbstractSDK/cw-orchestrator/blob/main/contracts/counter/examples/deploy.rs" target="_blank">showcase interacting with live chains</a>.
- Some other examples show <a href="https://github.com/AbstractSDK/cw-orchestrator/tree/main/contracts/counter/tests" target="_blank">how to use the library for testing your contracts</a>.
- Some examples <a href="https://github.com/AbstractSDK/cw-orchestrator/blob/main/contracts-ws/contracts/counter/examples/deploy.rs" target="_blank">showcase interacting with live chains</a>.
- Some other examples show <a href="https://github.com/AbstractSDK/cw-orchestrator/blob/main/contracts-ws/contracts/counter/tests/checksum.rs" target="_blank">how to use the library for testing your contracts</a>.

> **FINAL ADVICE**: Learn more and explore our <a href="https://orchestrator.abstract.money" target="blank" >full `cw-orch` documentation !</a>.
4 changes: 2 additions & 2 deletions guides/ibc-connection.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# IBC connection tutorial

In this tutorial, we'll learn how to use [an Inter-Blockchain Communication (IBC) Protocol relayer](https://github.com/cosmos/relayer) to
create an IBC connection between a [GM world](./gm-world) rollup and an Osmosis local testnet.
create an IBC connection between a [GM world](/tutorials/gm-world.md) rollup and an Osmosis local testnet.

:::warning Disclaimer
This initial version of IBC has high trust assumptions where receiving chains
Expand Down Expand Up @@ -66,7 +66,7 @@ bash init-local.sh
```

:::tip
[See the guidelines in GM world rollup for environment setup](/tutorials/gm-world#building-your-sovereign-rollup).
[See the guidelines in GM world rollup for environment setup](/tutorials/gm-world.md).
:::

## Run your local-osmosis-testnet
Expand Down
8 changes: 4 additions & 4 deletions guides/restart-rollup.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ This section covers the case where you need to restart your rollup.
In order to restart your rollup, you simply need to run the `<your-binary>d start [...args]`
command for your rollup.

For example, if you ran the [quick start](../tutorials/quick-start.md) tutorial, you started your rollup with:
For example, if you ran the [quick start](/tutorials/quick-start.md) tutorial, you started your rollup with:

```bash
rollkit start
Expand Down Expand Up @@ -47,8 +47,8 @@ This section covers the case that the node that
you are using to post blocks to your DA and consensus layer runs out of funds (tokens),
and you need to restart your rollup.

In this example, we're using Celestia's [Mocha testnet](https://docs.celestia.org/nodes/mocha-testnet/)
and running the [quick start](../tutorials/quick-start.md). In this example, our Celestia DA light node
In this example, we're using Celestia's [Mocha testnet](https://docs.celestia.org/how-to-guides/mocha-testnet/)
and running the [quick start](/tutorials/quick-start.md). In this example, our Celestia DA light node
ran out of Mocha testnet TIA and we are unable to post new blocks to Celestia due to a
[`Code: 19`](https://github.com/cosmos/cosmos-sdk/blob/main/types/errors/errors.go#L95)
error. This error is defined by Cosmos SDK as:
Expand Down Expand Up @@ -88,7 +88,7 @@ You can stop your rollup by using `Control + C` in your terminal where the node

### ⛽ Increase the gas fee {#increase-gas-fee}

To reiterate, before restarting the chain, you will need to increase the gas fee in order to avoid a `Code: 19` error. See the [How to configure gas price](./gas-price.md) guide for more information.
To reiterate, before restarting the chain, you will need to increase the gas fee in order to avoid a `Code: 19` error. See the [How to configure gas price](/guides/config.md#da-gas-price) guide for more information.

### 🔁 Restarting your rollup {#restarting-your-rollup}

Expand Down
2 changes: 1 addition & 1 deletion guides/use-tia-for-gas.md
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ rollkit tx bank send gm-key-2 gm1jqevcsld0dqpjp3csfg7alkv3lehvn8uswknrc 10000000

Fund the relayer on the Celestia Mocha testnet:

[Mocha Testnet Faucet Instructions](https://docs.celestia.org/nodes/mocha-testnet#mocha-testnet-faucet).
[Mocha Testnet Faucet Instructions](https://docs.celestia.org/how-to-guides/mocha-testnet#mocha-testnet-faucet).

Verify the relayer is funded:

Expand Down
4 changes: 2 additions & 2 deletions guides/zkml.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ This approach not only secures the verification process of machine learning mode

## Prerequisites

- An operational [EVM](/tutorials/beaconkit.md) using Rollkit (see next step)
- An operational EVM using Rollkit (see next step)
- A [Sindri](https://sindri.app) API key, which can be obtained [here](https://hen4zp9gxq3.typeform.com/to/hJHlUF8c?typeform-source=sindri.app)
- Python 3.10+ installed as well as the [Sindri Python SDK](https://sindri.app/docs/reference/sdk/python/) (more information below)

### Setting Up the Polaris EVM using Rollkit

This walkthrough assumes you started the Polaris EVM using Rollkit and should be interpreted as a direct continuation of this [Polaris EVM and Rollkit guide](https://rollkit.dev/tutorials/polaris-evm).
This walkthrough assumes you started the Polaris EVM using Rollkit and should be interpreted as a direct continuation of this Polaris EVM and Rollkit guide.

Comment on lines +21 to 22
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Same issue here—broken discovery path.

Re-link “Polaris EVM and Rollkit guide” so readers can jump directly.

🤖 Prompt for AI Agents
In guides/zkml.md around lines 21 to 22, the reference to the "Polaris EVM and
Rollkit guide" is a broken link. Update this text to include a proper hyperlink
pointing directly to the correct location or URL of the Polaris EVM and Rollkit
guide, enabling readers to navigate there easily.

### Installing the Sindri Python SDK

Expand Down
Loading