rust-embed-for-web 11.3.0

Rust Macro which embeds files into your executable. A fork of `rust-embed` with a focus on usage on web servers.
Documentation
name: release
on: workflow_dispatch
jobs:
  tests:
    name: tests
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install Rust
        run: rustup toolchain install stable --component llvm-tools-preview
      - name: Install cargo-llvm-cov
        uses: taiki-e/install-action@cargo-llvm-cov
      - uses: Swatinem/rust-cache@v2
      - name: Generate code coverage
        run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info
      - name: Upload coverage to Codecov
        uses: codecov/codecov-action@v3
        with:
          files: lcov.info
          fail_ci_if_error: false
          token: ${{ secrets.CODECOV_TOKEN }}
  release:
    name: release
    needs: [tests]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        # The crates need to be published in order.
      - name: Publish utils
        run: cargo publish --token ${CRATES_TOKEN}
        env:
          CRATES_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
        working-directory: utils
      - name: wait for utils to finish publishing
        # If we try to publish the next crate too quickly, it will fail to
        # publish because it's not up on crates.io fully yet. We need to wait a
        # bit until the previous crate is done publishing.
        run: sleep 20s
      - name: Publish impl
        run: cargo publish --token ${CRATES_TOKEN}
        env:
          CRATES_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
        working-directory: impl
      - name: wait for impl to finish publishing
        # If we try to publish the next crate too quickly, it will fail to
        # publish because it's not up on crates.io fully yet. We need to wait a
        # bit until the previous crate is done publishing.
        run: sleep 20s
      - name: Publish main crate
        run: cargo publish --token ${CRATES_TOKEN}
        env:
          CRATES_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}