Fix readme path in Cargo.toml
s of sub packages
#156
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
push: | |
branches: [main] | |
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
checks: write | |
jobs: | |
ci: | |
name: CI | |
needs: [test, clippy, docs] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Done | |
run: exit 0 | |
test: | |
name: Tests | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
rust: [1.70.0, nightly] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
override: true | |
- name: Ready cache | |
if: matrix.os == 'ubuntu-latest' | |
run: sudo chown -R $(whoami):$(id -ng) ~/.cargo/ | |
- name: Install dependencies | |
run: sudo apt-get update; sudo apt-get install --no-install-recommends libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libudev-dev | |
- name: Cache cargo | |
uses: actions/cache@v1 | |
id: cache | |
with: | |
path: ~/.cargo | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Test | |
run: cargo test --verbose -- --nocapture | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
components: rustfmt | |
- name: Run fmt --all -- --check | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: --all -- --check | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
components: clippy | |
- name: Install dependencies | |
run: sudo apt-get update; sudo apt-get install --no-install-recommends libudev-dev | |
- name: Cache cargo | |
uses: actions/cache@v1 | |
id: cache | |
with: | |
path: ~/.cargo | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Run clippy --all-targets -- | |
uses: actions-rs/clippy-check@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
args: --workspace --all-targets -- | |
docs: | |
name: Docs | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: 1.70.0 | |
override: true | |
- name: Install dependencies | |
run: sudo apt-get update; sudo apt-get install --no-install-recommends libudev-dev | |
- name: Cache cargo | |
uses: actions/cache@v1 | |
id: cache | |
with: | |
path: ~/.cargo | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Run doc tests | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --doc --all-features | |
- name: Get package names | |
id: get-package-names | |
run: |- | |
echo "PACKAGE_NAMES=$( | |
cargo metadata --no-deps --format-version=1 \ | |
| jq '.packages[].name' -r \ | |
| sort -u \ | |
| xargs -L1 echo --package \ | |
| paste -sd ' ' | |
)" >> "$GITHUB_OUTPUT" | |
- name: Get features for docs | |
id: get-features-for-docs | |
run: |- | |
echo "FEATURES_FOR_DOCS=$( | |
cargo metadata --no-deps --format-version=1 \ | |
| jq '.packages[].metadata.docs.rs.features | select(.) | .[]' -r \ | |
| sort -u \ | |
| xargs -L1 echo --features \ | |
| paste -sd ' ' | |
)" >> "$GITHUB_OUTPUT" | |
- name: Check docs | |
uses: actions-rs/cargo@v1 | |
with: | |
command: doc | |
args: --no-deps ${{ steps.get-package-names.outputs.PACKAGE_NAMES }} --all-features ${{ steps.get-features-for-docs.outputs.FEATURES_FOR_DOCS }} | |
docs-and-demos-ghpages: | |
name: Update Docs and Demos in GitHub Pages | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/main' | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: jetli/[email protected] | |
with: | |
version: 'latest' | |
- uses: actions-rs/toolchain@v1 | |
with: | |
target: wasm32-unknown-unknown | |
toolchain: 1.70.0 | |
override: true | |
- name: Get package names | |
id: get-package-names | |
run: |- | |
echo "PACKAGE_NAMES=$( | |
cargo metadata --no-deps --format-version=1 \ | |
| jq '.packages[].name' -r \ | |
| sort -u \ | |
| xargs -L1 echo --package \ | |
| paste -sd ' ' | |
)" >> "$GITHUB_OUTPUT" | |
- name: Get features for docs | |
id: get-features-for-docs | |
run: |- | |
echo "FEATURES_FOR_DOCS=$( | |
cargo metadata --no-deps --format-version=1 \ | |
| jq '.packages[].metadata.docs.rs.features | select(.) | .[]' -r \ | |
| sort -u \ | |
| xargs -L1 echo --features \ | |
| paste -sd ' ' | |
)" >> "$GITHUB_OUTPUT" | |
- name: Build docs | |
env: | |
GITHUB_REPO: ${{ github.repository }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: |- | |
cargo doc --verbose ${{ steps.get-package-names.outputs.PACKAGE_NAMES }} --all-features ${{ steps.get-features-for-docs.outputs.FEATURES_FOR_DOCS }} && | |
echo "<meta http-equiv=refresh content=0;url=bevy_tnua/index.html>" > target/doc/index.html && | |
cargo build --examples --release --features "$( | |
cargo metadata --no-deps --format-version 1 \ | |
| jq '.packages[].targets[] | select(.kind == ["example"]) | .["required-features"][]' -r \ | |
| uniq \ | |
| tr '\n' ' ' | |
)" --target wasm32-unknown-unknown --features bevy/webgl2 && | |
for demowasm in $(cd target/wasm32-unknown-unknown/release/examples; ls *.wasm | grep -v -); do | |
wasm-bindgen target/wasm32-unknown-unknown/release/examples/$demowasm --out-dir target/doc/demos/ --target web | |
cat > target/doc/demos/${demowasm%.*}.html <<EOF | |
<html lang="en-us"> | |
<head> | |
<script type="module"> | |
import init from './${demowasm%.*}.js'; | |
var res = await init(); | |
res.start(); | |
</script> | |
</head> | |
<body> | |
<script> | |
document.body.addEventListener("contextmenu", (e) => { | |
e.preventDefault(); | |
e.stopPropagation(); | |
}); | |
</script> | |
</body> | |
</html> | |
EOF | |
done && | |
cp -R assets/ target/doc/demos/ | |
- name: Add read permissions | |
run: |- | |
chmod --recursive +r target/doc | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v1 | |
with: | |
path: target/doc | |
deploy-ghpages: | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-latest | |
needs: docs-and-demos-ghpages | |
if: github.ref == 'refs/heads/main' | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v2 |