fix(ci): ensure system gem PATH takes precedence for fpm execution

Swadhin Biswas committed 6 months ago
0a891be
1 parent ca04b6a
commit 0a891be
3 files changed
+34 -21
▼.github/workflows/ci.yml
+16-12
150
150
151
151
- name: Install Ruby and fpm for RPM conversion
152
152
run: |
153
- sudo apt-get install -y ruby ruby-dev
154
- export GEM_HOME="$HOME/.gem"
155
- export PATH="$HOME/.gem/bin:$PATH"
156
- gem install fpm
157
- echo "$HOME/.gem/bin" >> $GITHUB_PATH
153
+ sudo apt-get install -y ruby ruby-dev rpm
154
+ sudo gem install --no-document fpm
155
+ # Ensure system gems are in PATH (fixes user gem path precedence issue)
156
+ export PATH="$(gem env | grep 'EXECUTABLE DIRECTORY' | awk '{print $4}'):$PATH"
157
+ fpm --version
158
158
159
159
- name: Build RPM package
160
- run: ./scripts/build-rpm.sh
160
+ run: |
161
+ export PATH="$(gem env | grep 'EXECUTABLE DIRECTORY' | awk '{print $4}'):$PATH"
162
+ ./scripts/build-rpm.sh
161
163
162
164
- name: Upload DEB artifact
163
165
uses: actions/upload-artifact@v4
277
279
278
280
- name: Install Ruby and fpm for RPM conversion
279
281
run: |
280
- sudo apt-get install -y ruby ruby-dev
281
- export GEM_HOME="$HOME/.gem"
282
- export PATH="$HOME/.gem/bin:$PATH"
283
- gem install fpm
284
- echo "$HOME/.gem/bin" >> $GITHUB_PATH
282
+ sudo apt-get install -y ruby ruby-dev rpm
283
+ sudo gem install --no-document fpm
284
+ # Ensure system gems are in PATH (fixes user gem path precedence issue)
285
+ export PATH="$(gem env | grep 'EXECUTABLE DIRECTORY' | awk '{print $4}'):$PATH"
286
+ fpm --version
285
287
286
288
- name: Build RPM package
287
- run: ./scripts/build-rpm.sh
289
+ run: |
290
+ export PATH="$(gem env | grep 'EXECUTABLE DIRECTORY' | awk '{print $4}'):$PATH"
291
+ ./scripts/build-rpm.sh
288
292
289
293
- name: Test binary exists
290
294
run: |
291
295
▼.github/workflows/release.yml
+8-6
91
91
92
92
- name: Install Ruby and fpm for RPM conversion
93
93
run: |
94
- sudo apt-get install -y ruby ruby-dev
95
- export GEM_HOME="$HOME/.gem"
96
- export PATH="$HOME/.gem/bin:$PATH"
97
- gem install fpm
98
- echo "$HOME/.gem/bin" >> $GITHUB_PATH
94
+ sudo apt-get install -y ruby ruby-dev rpm
95
+ sudo gem install --no-document fpm
96
+ # Ensure system gems are in PATH (fixes user gem path precedence issue)
97
+ export PATH="$(gem env | grep 'EXECUTABLE DIRECTORY' | awk '{print $4}'):$PATH"
98
+ fpm --version
99
99
100
100
- name: Build RPM package
101
- run: ./scripts/build-rpm.sh
101
+ run: |
102
+ export PATH="$(gem env | grep 'EXECUTABLE DIRECTORY' | awk '{print $4}'):$PATH"
103
+ ./scripts/build-rpm.sh
102
104
103
105
- name: Extract version
104
106
id: get_version
105
107
▼scripts/build-rpm.sh
+10-3
10
10
11
11
echo "=== Building RPM from DEB package ==="
12
12
13
-# Check if fpm is installed
13
+# Check if fpm is installed and usable
14
14
if ! command -v fpm &> /dev/null; then
15
- echo "Warning: fpm is not installed. Skipping RPM build."
15
+ echo "Error: fpm is not installed."
16
16
echo "To build RPM, install fpm with: gem install fpm"
17
17
echo "Or on Arch Linux: sudo pacman -S ruby base-devel && gem install fpm"
18
- exit 0
18
+ exit 1
19
+fi
20
+
21
+if ! fpm --version &> /dev/null; then
22
+ echo "Error: fpm is present in PATH but unusable."
23
+ echo "The Ruby environment cannot load the fpm gem for this executable."
24
+ echo "In CI, install it system-wide with: sudo gem install --no-document fpm"
25
+ exit 1
19
26
fi
20
27
21
28
# Find the latest DEB package
22
29