Automation

Turn crawl results into CI artifacts.

argiope works well in pipelines because report mode writes directly to disk. That keeps workflow logs quiet and gives you a portable file to upload, publish, or inspect later.

Why argiope fits CI/CD

Single binary

No runtime environment or service stack is needed once the executable is present.

Report-first mode

`--report` produces an explicit file artifact instead of forcing you to scrape workflow logs.

Readable output formats

HTML works for reviewers, Markdown works for GitHub-native text surfaces.

GitHub Actions example with HTML artifacts

This pattern downloads the current release, runs a crawl, writes a self-contained HTML report, and uploads that report as a workflow artifact.

name: Broken Link Report

on:
  workflow_dispatch:
  schedule:
    - cron: '0 6 * * 1'

jobs:
  crawl:
    runs-on: ubuntu-latest
    steps:
      - name: Download argiope
        run: |
          curl -fsSL https://christianhelle.com/argiope/install | sh

      - name: Run crawl
        run: |
          argiope check https://example.com \
            --report report.html \
            --report-format html

      - name: Upload report
        uses: actions/upload-artifact@v4
        with:
          name: broken-link-report
          path: report.html

Markdown report for GitHub-native summaries

Markdown reports are easier to paste into issue descriptions, release notes, or workflow summaries.

argiope check https://example.com \
  --report report.md \
  --report-format markdown \
  --include-positives
Tip: pair Markdown output with the GitHub Actions job summary feature if you want the crawl result visible directly in the run UI.

Common automation patterns

Scheduled link checks

Run `check` nightly or weekly and keep the HTML artifact for historical comparison.

Release gate

Crawl your docs or landing pages before shipping a tagged release.

Archive generation

Use `images` in a manual workflow to create downloadable offline collections as build artifacts.

Static browser refresh

Use `library` when the files already exist and only the HTML layer needs to be rebuilt.