rman 0.3.0

Parser for Riot Manifest file format.
Documentation
name: Publish

permissions:
  contents: read

on:
  release:
    types: [published]

env:
  CARGO_TERM_COLOR: always
  CLICOLOR: 1

jobs:
  publish:
    name: cargo publish
    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          submodules: true

      - name: Install rust
        uses: dtolnay/rust-toolchain@stable

      - uses: Swatinem/rust-cache@v2

      - name: cargo publish
        shell: bash
        run: cargo publish --token ${{ secrets.CRATES_TOKEN }}

  doc-deploy:
    name: cargo +nightly doc
    runs-on: ubuntu-latest
    timeout-minutes: 10
    permissions:
      contents: write
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          submodules: true

      - name: Install rust
        uses: dtolnay/rust-toolchain@nightly
        with:
          components: rust-docs

      - uses: Swatinem/rust-cache@v2

      - name: cargo +nightly doc --no-deps --all-features
        run: cargo +nightly doc --no-deps --all-features
        env:
          RUSTDOCFLAGS: --cfg docsrs -D warnings

      # publish to GitHub Pages
      - name: Move files
        shell: bash
        run: |
          mkdir -p ./docs/${{ github.ref_name }}
          mv ./target/doc/* ./docs/${{ github.ref_name }}/
          touch index.html
          echo '<!DOCTYPE html>' >> index.html
          echo '<html>' >> index.html
          echo '  <head>' >> index.html
          echo '    <meta http-equiv="refresh" content="0; url = rman/index.html"/>' >> index.html
          echo '  </head>' >> index.html
          echo '  <body></body>' >> index.html
          echo '</html>' >> index.html
          mv index.html ./docs/${{ github.ref_name }}

      - name: Deploy docs
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_branch: gh-pages
          publish_dir: ./docs
          allow_empty_commit: false
          keep_files: true