archival 0.11.2

The simplest CMS in existence
Documentation
# A github action for building archival sites and publishing them to a branch.
name: Archival
author: "Archival Team"
description: "Builds and publishes a local archival site"
branding:
  icon: "archive"
  color: "green"
inputs:
  archival-bin:
    description:
      A path to an archival binary to run. If not provided, will run the version
      from Cargo.toml.
    required: false
  archival-version:
    description:
      Override the archival version to use from cargo. If archival-bin is
      specified, this does nothing.
    required: false
    default: "0.11.2"
  api-host:
    description: "API Host to send build events to"
    required: false
    default: "https://api.archival.dev"
runs:
  using: "composite"
  steps:
    - name: Checkout
      uses: actions/checkout@v4
    - name: Setup Node
      uses: actions/setup-node@v4
    - name: Setup Rust
      if: ${{ inputs.archival-bin == '' }}
      uses: moonrepo/setup-rust@v1
      with:
        bins: archival@${{ inputs.archival-version }}
    - name: Determine Archival Binary Name
      id: archival-bin
      uses: haya14busa/action-cond@v1
      with:
        cond: ${{ inputs.archival-bin == '' }}
        if_true: "archival"
        if_false: ${{ inputs.archival-bin }}
    - name: Set Build Dir
      id: dist
      run: echo "dist=$(${{ steps.archival-bin.outputs.value }} manifest build-dir)" >> $GITHUB_OUTPUT
      shell: bash
    - name: Archival Prebuild
      run: ${{ steps.archival-bin.outputs.value }} prebuild
      shell: bash
    - name: Build with Archival
      run: ${{ steps.archival-bin.outputs.value }} build
      shell: bash
    - name: Get Build Size
      id: size
      run: echo "bytes=$(du -s dist | cut -f1)" >> $GITHUB_OUTPUT
      shell: bash
    - name: Limit Build Size
      if: ${{ steps.size.outputs.bytes > 104857600 }}
      run: |
        echo "::error title={Artifact Too Big}::${{ steps.size.outputs.bytes }} exceeds maximum build size of 104857600 bytes"
        exit 1
      shell: bash
    - name: Upload Build Artifact
      uses: actions/upload-artifact@v4
      id: artifact
      with:
        name: ${{ github.sha }}
        path: ${{ steps.dist.outputs.dist }}
        if-no-files-found: error
        retention-days: 1
        overwrite: true
        include-hidden-files: true
    - name: Deploy
      uses: fjogeleit/http-request-action@v1
      with:
        url: "${{ inputs.api-host }}/sync/${{ github.repository }}/${{ steps.artifact.outputs.artifact-id }}/${{ github.ref_name }}"
        method: "PUT"