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
5 changes: 5 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[flake8]
max-line-length = 127
max-complexity = 10
exclude = .git,__pycache__,build,dist,.venv,venv,*.egg-info,.eggs,.mypy_cache,.tox
ignore = E501,W503,E203
29 changes: 21 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,8 @@ name: Build and Release Cross-Platform Executables

on:
push:
branches: [ main, master ]
tags: [ 'v*' ]
pull_request:
branches: [ main, master ]

jobs:
build:
Expand Down Expand Up @@ -107,12 +105,27 @@ jobs:
path: artifacts/

- name: Create release
uses: softprops/action-gh-release@v1
with:
files: artifacts/**/*
generate_release_notes: true
draft: false
prerelease: false
run: |
# Generate release notes from commits
RELEASE_NOTES=$(gh api repos/${{ github.repository }}/releases/generate-notes \
--field tag_name=${{ github.ref_name }} \
--field target_commitish=${{ github.ref_name }} \
--jq .body)

# Create release using GitHub CLI
gh release create ${{ github.ref_name }} \
--title "SUSE Observability Integrations Finder ${{ github.ref_name }}" \
--notes "$RELEASE_NOTES" \
--draft=false \
--prerelease=false

# Upload artifacts to the release
for artifact in artifacts/*; do
if [ -f "$artifact" ]; then
echo "Uploading $artifact to release..."
gh release upload ${{ github.ref_name }} "$artifact"
fi
done
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Expand Down
18 changes: 2 additions & 16 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ name: Test

on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]

jobs:
test:
Expand All @@ -24,21 +22,9 @@ jobs:
python -m pip install --upgrade pip
pip install -r requirements.txt

- name: Run tests
- name: Run CI tests
run: |
python test_finder.py

- name: Test CLI help
run: |
python integrations_finder.py --help

- name: Test demo
run: |
python demo.py

- name: Verify imports
run: |
python -c "from integrations_finder import IntegrationsFinder; print('✅ All imports successful')"
python test_ci.py

lint:
runs-on: ubuntu-latest
Expand Down
4 changes: 2 additions & 2 deletions BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -198,8 +198,8 @@ The project includes two GitHub Actions workflows:
#### Automated Release
1. **Create a tag**: `git tag v1.0.0 && git push origin v1.0.0`
2. **Automatic build**: GitHub Actions builds all platform executables
3. **Automatic release**: Creates GitHub release with downloadable packages
4. **Release notes**: Automatically generated from commits
3. **Automatic release**: Creates GitHub release with downloadable packages using GitHub CLI
4. **Release notes**: Automatically generated from commits using GitHub API

#### Using the Release Script
```bash
Expand Down
23 changes: 20 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,19 @@ A tool to trace from SUSE Observability Agent container tags to the correspondin

1. **Install dependencies:**
```bash
# CLI only (recommended for servers/CI)
pip install -r requirements.txt

# CLI + GUI (requires PyQt6)
pip install -r requirements-gui.txt
```

2. **Run the tool:**
```bash
# CLI mode
python integrations_finder.py find <agent_sha_or_container_path>

# GUI mode
# GUI mode (requires PyQt6)
python integrations_finder.py gui
```

Expand Down Expand Up @@ -112,12 +116,25 @@ The tool can extract 8-character git SHAs from various formats:
- **macOS**: x86_64, aarch64 (Apple Silicon)
- **Windows**: x86_64

### Icon Support

The build system supports application icons for different platforms:
- **Linux**: PNG format (automatically handled)
- **Windows**: ICO format (automatically converted from PNG)
- **macOS**: ICNS format (when available)

Icons are automatically detected and used based on platform requirements. The `convert_icon.py` script can be used to manually convert formats if needed.

**Note**: Pillow is included in the main requirements to support icon conversion and potential future image processing features.

### Build Methods

1. **Direct Build**: `python build.py <platform>-<arch>`
2. **Docker Build**: `./build-docker.sh <platform>-<arch>`
3. **Makefile**: `make build-<platform>-<arch>`

**Note**: Windows builds use Python's built-in `zipfile` module for packaging, ensuring compatibility across all Windows environments.

### Quick Build Commands

```bash
Expand Down Expand Up @@ -187,8 +204,8 @@ The project includes GitHub Actions workflows that automatically:
### **Release Process**
1. **Create a tag**: `git tag v1.0.0 && git push origin v1.0.0`
2. **Automatic build**: GitHub Actions builds all platform executables
3. **Automatic release**: Creates GitHub release with downloadable packages
4. **Release notes**: Automatically generated from commits
3. **Automatic release**: Creates GitHub release with downloadable packages using GitHub CLI
4. **Release notes**: Automatically generated from commits using GitHub API

### **Artifacts**
- **Build artifacts**: Available for 30 days on all builds
Expand Down
Binary file added assets/images/logo.ico
Binary file not shown.
Loading
Loading