Skip to content

Commit bf49cab

Browse files
committed
solana/CI: check crate versions
1 parent 182dbda commit bf49cab

File tree

16 files changed

+88
-22
lines changed

16 files changed

+88
-22
lines changed

.github/workflows/solana.yml

+8
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,14 @@ jobs:
9797
cargo build-sbf --features "mainnet"
9898
cargo test-sbf --features "mainnet"
9999
cargo test
100+
check-version:
101+
name: Check version
102+
runs-on: ubuntu-latest
103+
steps:
104+
- uses: actions/checkout@v4
105+
- run: ./scripts/sync-versions --check
106+
shell: bash
107+
100108
anchor-test:
101109
name: Anchor Test
102110
runs-on: ubuntu-latest

solana/Cargo.lock

+5-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

solana/idl/json/dummy_transfer_hook.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "0.1.0",
2+
"version": "2.0.0",
33
"name": "dummy_transfer_hook",
44
"instructions": [
55
{

solana/idl/json/example_native_token_transfers.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "1.0.0",
2+
"version": "2.0.0",
33
"name": "example_native_token_transfers",
44
"instructions": [
55
{

solana/idl/json/ntt_quoter.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "1.0.0",
2+
"version": "2.0.0",
33
"name": "ntt_quoter",
44
"instructions": [
55
{

solana/idl/json/wormhole_governance.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "1.0.0",
2+
"version": "2.0.0",
33
"name": "wormhole_governance",
44
"instructions": [
55
{

solana/idl/ts/dummy_transfer_hook.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export type DummyTransferHook = {
2-
"version": "0.1.0",
2+
"version": "2.0.0",
33
"name": "dummy_transfer_hook",
44
"instructions": [
55
{
@@ -110,7 +110,7 @@ export type DummyTransferHook = {
110110
};
111111

112112
export const IDL: DummyTransferHook = {
113-
"version": "0.1.0",
113+
"version": "2.0.0",
114114
"name": "dummy_transfer_hook",
115115
"instructions": [
116116
{

solana/idl/ts/example_native_token_transfers.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export type ExampleNativeTokenTransfers = {
2-
"version": "1.0.0",
2+
"version": "2.0.0",
33
"name": "example_native_token_transfers",
44
"instructions": [
55
{
@@ -2028,7 +2028,7 @@ export type ExampleNativeTokenTransfers = {
20282028
};
20292029

20302030
export const IDL: ExampleNativeTokenTransfers = {
2031-
"version": "1.0.0",
2031+
"version": "2.0.0",
20322032
"name": "example_native_token_transfers",
20332033
"instructions": [
20342034
{

solana/idl/ts/ntt_quoter.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export type NttQuoter = {
2-
"version": "1.0.0",
2+
"version": "2.0.0",
33
"name": "ntt_quoter",
44
"instructions": [
55
{
@@ -588,7 +588,7 @@ export type NttQuoter = {
588588
};
589589

590590
export const IDL: NttQuoter = {
591-
"version": "1.0.0",
591+
"version": "2.0.0",
592592
"name": "ntt_quoter",
593593
"instructions": [
594594
{

solana/idl/ts/wormhole_governance.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export type WormholeGovernance = {
2-
"version": "1.0.0",
2+
"version": "2.0.0",
33
"name": "wormhole_governance",
44
"instructions": [
55
{
@@ -76,7 +76,7 @@ export type WormholeGovernance = {
7676
};
7777

7878
export const IDL: WormholeGovernance = {
79-
"version": "1.0.0",
79+
"version": "2.0.0",
8080
"name": "wormhole_governance",
8181
"instructions": [
8282
{

solana/modules/ntt-messages/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ntt-messages"
3-
version = "1.0.0"
3+
version = "2.0.0"
44
edition = "2021"
55

66
[features]

solana/programs/dummy-transfer-hook/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "dummy-transfer-hook"
3-
version = "0.1.0"
3+
version = "2.0.0"
44
description = "Created with Anchor"
55
edition = "2021"
66

solana/programs/example-native-token-transfers/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "example-native-token-transfers"
3-
version = "1.0.0"
3+
version = "2.0.0"
44
description = "Example implementation of native token transfer standard"
55
edition = "2021"
66

solana/programs/ntt-quoter/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ntt-quoter"
3-
version = "1.0.0"
3+
version = "2.0.0"
44
edition = "2021"
55

66
[lib]

solana/programs/wormhole-governance/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "wormhole-governance"
3-
version = "1.0.0"
3+
version = "2.0.0"
44
description = "Governance for programs controlled by Wormhole Guardians"
55
edition = "2021"
66

solana/scripts/sync-versions

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#!/usr/bin/env bash
2+
3+
set -euo pipefail
4+
5+
# cd to the solana root (one level up from the script location)
6+
cd "$(dirname "$0")"/..
7+
8+
# check if --check is passed (in a way that doesn't complain about unbound variables)
9+
check=false
10+
if [[ "${1:-}" == "--check" ]]; then
11+
check=true
12+
fi
13+
14+
version=
15+
16+
# grab all lib.rs files that export a VERSION constant
17+
# and ensure there is exactly one
18+
for lib in $(find . -name lib.rs); do
19+
if grep -q "pub const VERSION" $lib; then
20+
echo "Found version in $lib"
21+
if [[ -n $version ]]; then
22+
echo "Error: multiple versions found" >&2
23+
exit 1
24+
fi
25+
version=$(grep "pub const VERSION" $lib | cut -d '"' -f 2)
26+
echo "Version is $version"
27+
fi
28+
done
29+
30+
if [[ -z $version ]]; then
31+
echo "Error: version not found" >&2
32+
exit 1
33+
fi
34+
35+
failed=0
36+
37+
# update Cargo.toml versions in all Cargo.toml files in the `programs` and
38+
# `modules` directories
39+
for cargo in $(find programs modules -name Cargo.toml); do
40+
if $check; then
41+
if ! grep -q "version = \"$version\"" $cargo; then
42+
echo "Error: $cargo is out of date" >&2
43+
failed=$((failed + 1))
44+
fi
45+
else
46+
# NOTE: we don't use sed -i because it's not portable
47+
cp $cargo $cargo.bak
48+
sed "s/^version = .*/version = \"$version\"/" $cargo.bak > $cargo
49+
if ! diff $cargo $cargo.bak > /dev/null; then
50+
echo "Updated $cargo"
51+
fi
52+
rm $cargo.bak
53+
fi
54+
done
55+
56+
if [[ $failed -gt 0 ]]; then
57+
exit 1
58+
fi

0 commit comments

Comments
 (0)