Skip to content

Commit 29019bc

Browse files
committed
feat: add install script testing before release
- Add install-test.sh that supports local binary testing via LOCAL_BINARY_DIR - Reorder workflow: build → test-install → release - Tests run install script on all platforms before creating release
1 parent d7ddc8b commit 29019bc

File tree

2 files changed

+390
-15
lines changed

2 files changed

+390
-15
lines changed

.github/workflows/build-release.yml

Lines changed: 44 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -52,28 +52,57 @@ jobs:
5252
tar -C dist/release -czvf "dist/release/strix-${VERSION}-${{ matrix.target }}.tar.gz" "strix-${VERSION}-${{ matrix.target }}"
5353
fi
5454
55-
# Test
56-
echo "Testing binary..."
57-
if [[ "${{ runner.os }}" == "Windows" ]]; then
58-
"./dist/release/strix-${VERSION}-${{ matrix.target }}.exe" --help
59-
else
60-
"./dist/release/strix-${VERSION}-${{ matrix.target }}" --help
61-
fi
62-
6355
- uses: actions/upload-artifact@v4
6456
with:
6557
name: strix-${{ matrix.target }}
66-
path: dist/release/*.tar.gz
67-
if-no-files-found: ignore
58+
path: dist/release/*
59+
if-no-files-found: error
6860

69-
- uses: actions/upload-artifact@v4
61+
test-install:
62+
needs: build
63+
strategy:
64+
fail-fast: false
65+
matrix:
66+
include:
67+
- os: macos-latest
68+
target: macos-arm64
69+
- os: ubuntu-latest
70+
target: linux-x86_64
71+
- os: windows-latest
72+
target: windows-x86_64
73+
74+
runs-on: ${{ matrix.os }}
75+
76+
steps:
77+
- uses: actions/checkout@v4
78+
79+
- uses: actions/download-artifact@v4
7080
with:
71-
name: strix-${{ matrix.target }}-zip
72-
path: dist/release/*.zip
73-
if-no-files-found: ignore
81+
name: strix-${{ matrix.target }}
82+
path: dist/release
83+
84+
- name: Get version
85+
id: version
86+
shell: bash
87+
run: |
88+
pip install poetry
89+
echo "version=$(poetry version -s)" >> $GITHUB_OUTPUT
90+
91+
- name: Test install script
92+
shell: bash
93+
run: |
94+
chmod +x scripts/install-test.sh
95+
VERSION=${{ steps.version.outputs.version }} LOCAL_BINARY_DIR=${{ github.workspace }}/dist/release ./scripts/install-test.sh
96+
97+
- name: Verify installation
98+
shell: bash
99+
run: |
100+
export PATH="$HOME/.strix/bin:$PATH"
101+
strix --version
102+
strix --help
74103
75104
release:
76-
needs: build
105+
needs: test-install
77106
runs-on: ubuntu-latest
78107
permissions:
79108
contents: write

0 commit comments

Comments
 (0)