Skip to content

Commit 50119eb

Browse files
authored
feat: update zerv-versioning workflow (#145)
1 parent 65839f7 commit 50119eb

File tree

1 file changed

+35
-6
lines changed

1 file changed

+35
-6
lines changed

.github/workflows/shared-zerv-versioning.yml

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,18 +94,47 @@ jobs:
9494
~/.cargo/registry/index/
9595
~/.cargo/registry/cache/
9696
~/.cargo/git/db/
97-
key: cargo-zerv-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
97+
key: cargo-zerv-${{ runner.os }}-${{ inputs.zerv_version || 'latest' }}
9898
restore-keys: |
99-
cargo-zerv-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
10099
cargo-zerv-${{ runner.os }}-
101100
102101
- name: Install zerv
103102
run: |
104-
if [ -n "${{ inputs.zerv_version }}" ]; then
105-
cargo install zerv --version ${{ inputs.zerv_version }} || true
103+
# Get currently installed version (if any)
104+
if command -v zerv >/dev/null 2>&1; then
105+
CURRENT_VERSION=$(zerv --version | awk '{print $2}')
106106
else
107-
cargo install zerv || true
107+
CURRENT_VERSION=""
108108
fi
109+
110+
# Get latest version from crates.io
111+
LATEST_VERSION=$(cargo search zerv --limit 1 | head -n 1 | sed -E 's/.*"([^"]+)".*/\1/')
112+
113+
# Input version (may be empty)
114+
REQUIRED_VERSION="${{ inputs.zerv_version }}"
115+
116+
echo "Current zerv version : ${CURRENT_VERSION:-none}"
117+
echo "Latest zerv version : $LATEST_VERSION"
118+
echo "Required version : ${REQUIRED_VERSION:-latest}"
119+
120+
if [ -z "$REQUIRED_VERSION" ]; then
121+
# No input version → use latest
122+
if [ "$CURRENT_VERSION" != "$LATEST_VERSION" ]; then
123+
echo "Installing latest zerv ($LATEST_VERSION)"
124+
cargo install zerv --version "$LATEST_VERSION" --force
125+
else
126+
echo "zerv is already up to date"
127+
fi
128+
else
129+
# Input version provided
130+
if [ "$CURRENT_VERSION" != "$REQUIRED_VERSION" ]; then
131+
echo "Installing required zerv version ($REQUIRED_VERSION)"
132+
cargo install zerv --version "$REQUIRED_VERSION" --force
133+
else
134+
echo "Required zerv version already installed"
135+
fi
136+
fi
137+
109138
zerv --version
110139
111140
- name: Generate Zerv RON
@@ -250,4 +279,4 @@ jobs:
250279
~/.cargo/registry/index/
251280
~/.cargo/registry/cache/
252281
~/.cargo/git/db/
253-
key: cargo-zerv-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
282+
key: cargo-zerv-${{ runner.os }}-${{ inputs.zerv_version || 'latest' }}

0 commit comments

Comments
 (0)