Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .github/workflows/rust-sdk-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Bump Spin Rust Templates SDK Dependency

on:
repository_dispatch:
types:
- rust-sdk-release

jobs:
create-pr:
name: Create PR with Spin Rust Templates SDK Dependency Bump
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Bump Rust Templates SDK Dependency
shell: bash
run: ./scripts/bump-rust-template-sdk.sh ${{ github.event.client_payload.version }}

- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.PASSPHRASE }}
git_user_signingkey: true
git_commit_gpgsign: true

- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
commit-message: "chore(rust-templates): bump Spin Rust SDK to ${{ github.event.client_payload.version }}"
title: "chore(rust-templates): bump Spin Rust SDK to ${{ github.event.client_payload.version }}"
body: Update the Spin Rust Templates SDK dependency to ${{ github.event.client_payload.version }}
branch: bump-spin-rust-sdk-${{ github.event.client_payload.version }}
base: main
delete-branch: true
committer: spinframeworkbot <[email protected]>
author: spinframeworkbot <[email protected]>
signoff: true
token: ${{ secrets.PAT }}
35 changes: 35 additions & 0 deletions scripts/bump-rust-template-sdk.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash
# This script updates the `spin-sdk` dependency in Rust template
# `Cargo.toml.tmpl` files under the `templates` directory.
set -euo pipefail

VERSION=$1

# -i syntax differs between GNU and Mac sed; this usage is supported by both
SED_INPLACE='sed -i.bak'

# cleanup
trap 'find templates -name "*.bak" -delete' EXIT

usage() {
echo "Usage: $0 <VERSION>"
echo "Updates the Rust templates SDK dependency to the specified version"
echo "Example: $0 6.0.0"
}

if [[ $# -ne 1 ]]
then
usage
exit 1
fi

# Ensure version is an 'official' release
if [[ ! "${VERSION}" =~ ^[0-9]+.[0-9]+.[0-9]+$ ]]
then
echo "VERSION doesn't match [0-9]+.[0-9]+.[0-9]+ and may be a prerelease; skipping."
exit 1
fi


# Update the version in the Cargo.toml.tmpl files for each Rust template
find templates -type f -path "templates/*-rust/content/Cargo.toml.tmpl" -exec $SED_INPLACE "/^\[dependencies\]/,/^\[/ s/^spin-sdk = \".*\"/spin-sdk = \"${VERSION}\"/" {} +
Loading