mirror of
https://github.com/rust-lang/mdBook.git
synced 2025-12-27 07:54:20 -05:00
This adds a job to automatically update cargo dependencies once a month. I've added this script instead of using Renovate because I couldn't get Renovate to update versions in `Cargo.toml`. I also wanted to batch transitive dependency updates all in one PR.
45 lines
1.0 KiB
Bash
Executable File
45 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Updates all compatible Cargo dependencies.
|
|
#
|
|
# I wasn't able to get Renovate to update compatible dependencies in a way
|
|
# that I like, so this script takes care of it. This uses `cargo upgrade` to
|
|
# ensure that `Cargo.toml` also gets updated. This also makes sure that all
|
|
# transitive dependencies are updated.
|
|
|
|
set -ex
|
|
|
|
git fetch origin update-dependencies
|
|
if git checkout update-dependencies
|
|
then
|
|
git reset --hard origin/master
|
|
else
|
|
git checkout -b update-dependencies
|
|
fi
|
|
|
|
cat > commit-message << 'EOF'
|
|
Update cargo dependencies
|
|
|
|
```
|
|
EOF
|
|
cargo upgrade >> commit-message
|
|
echo '```' >> commit-message
|
|
if git diff --quiet
|
|
then
|
|
echo "No changes detected, exiting."
|
|
exit 0
|
|
fi
|
|
# Also update any transitive dependencies.
|
|
cargo update
|
|
|
|
git config user.name "github-actions[bot]"
|
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
|
|
git add Cargo.toml Cargo.lock
|
|
git commit -F commit-message
|
|
|
|
git push --force origin update-dependencies
|
|
|
|
gh pr create --fill \
|
|
--head update-dependencies \
|
|
--base master
|