Skip to content

Commit

Permalink
[dependencies] add Renovate config (#4236)
Browse files Browse the repository at this point in the history
* Add configuration for automatically creating dependencies, and for pinning GitHub Actions digests
* Add a post-upgrade script that runs cargo-hakari.

Depends on oxidecomputer/renovate-config#5.

See [RFD 434](https://rfd.shared.oxide.computer/rfd/0434) and #4166.
  • Loading branch information
sunshowers authored Oct 10, 2023
1 parent 3e9f46c commit 97ddc7d
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 0 deletions.
9 changes: 9 additions & 0 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>oxidecomputer/renovate-config",
"local>oxidecomputer/renovate-config//rust/autocreate",
"local>oxidecomputer/renovate-config:post-upgrade",
"helpers:pinGitHubActionDigests"
]
}
42 changes: 42 additions & 0 deletions tools/renovate-post-upgrade.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/bash

# This script is run after Renovate upgrades dependencies or lock files.

set -euo pipefail

# Function to retry a command up to 3 times.
function retry_command {
local retries=3
local delay=5
local count=0
until "$@"; do
exit_code=$?
count=$((count+1))
if [ $count -lt $retries ]; then
echo "Command failed with exit code $exit_code. Retrying in $delay seconds..."
sleep $delay
else
echo "Command failed with exit code $exit_code after $count attempts."
return $exit_code
fi
done
}

# Download and install cargo-hakari if it is not already installed.
if ! command -v cargo-hakari &> /dev/null; then
# Need cargo-binstall to install cargo-hakari.
if ! command -v cargo-binstall &> /dev/null; then
# Fetch cargo binstall.
echo "Installing cargo-binstall..."
curl --retry 3 -L --proto '=https' --tlsv1.2 -sSfO https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh
retry_command bash install-from-binstall-release.sh
fi

# Install cargo-hakari.
echo "Installing cargo-hakari..."
retry_command cargo binstall cargo-hakari --no-confirm
fi

# Run cargo hakari to regenerate the workspace-hack file.
echo "Running cargo-hakari..."
cargo hakari generate

0 comments on commit 97ddc7d

Please sign in to comment.