Fix FileIndexer to accept iterable of paths; add multi-path indexer test #3
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build AppImages | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| workflow_dispatch: | |
| inputs: | |
| arch: | |
| description: 'Target architecture (x86_64 or aarch64)' | |
| required: false | |
| jobs: | |
| build: | |
| name: Build AppImages (matrix) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| arch: [ x86_64, aarch64, armv7 ] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Show build info | |
| run: | | |
| echo "Building for arch: ${{ matrix.arch }}" | |
| uname -a || true | |
| - name: Setup Python for tests | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.x' | |
| - name: Install test deps & run pytest | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt || true | |
| pip install pytest | |
| PYTHONPATH=. pytest -q | |
| - name: Compile translations | |
| run: | | |
| mkdir -p locale/de/LC_MESSAGES locale/en/LC_MESSAGES locale/fr/LC_MESSAGES locale/es/LC_MESSAGES locale/pl/LC_MESSAGES | |
| msgfmt po/de/everyfind.po -o locale/de/LC_MESSAGES/everyfind.mo | |
| msgfmt po/en/everyfind.po -o locale/en/LC_MESSAGES/everyfind.mo | |
| msgfmt po/fr/everyfind.po -o locale/fr/LC_MESSAGES/everyfind.mo | |
| msgfmt po/es/everyfind.po -o locale/es/LC_MESSAGES/everyfind.mo | |
| msgfmt po/pl/everyfind.po -o locale/pl/LC_MESSAGES/everyfind.mo | |
| echo "Translation files compiled successfully" | |
| ls -lh locale/*/LC_MESSAGES/ | |
| - name: Build for x86_64 on-host | |
| if: matrix.arch == 'x86_64' | |
| run: | | |
| set -eux | |
| bash build.sh x86_64 | |
| - name: Prepare QEMU for cross-arch (aarch64/armv7) | |
| if: matrix.arch == 'aarch64' || matrix.arch == 'armv7' | |
| uses: docker/setup-qemu-action@v2 | |
| - name: Build inside arm container (aarch64/armv7) | |
| if: matrix.arch == 'aarch64' || matrix.arch == 'armv7' | |
| run: | | |
| set -eux | |
| PLATFORM=linux/arm64 | |
| TARGET_ARG=aarch64 | |
| if [ "${{ matrix.arch }}" = "armv7" ]; then | |
| PLATFORM=linux/arm/v7 | |
| TARGET_ARG=armv7 | |
| fi | |
| # use an arm container to run the build script via Docker+QEMU | |
| docker run --platform ${PLATFORM} --rm \ | |
| -v "${{ github.workspace }}:/work" -w /work ubuntu:22.04 \ | |
| bash -lc "apt-get update && apt-get install -y python3 python3-venv python3-pip wget curl build-essential git && bash build.sh ${TARGET_ARG}" | |
| - name: List build artifacts | |
| run: ls -la build || true | |
| - name: Upload AppImage artifact | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: everyfind-${{ matrix.arch }} | |
| path: | | |
| build/*.AppImage | |
| release: | |
| name: Create GitHub Release (on tag) | |
| needs: build | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/') | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Download build artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: release-artifacts | |
| - name: Create Release | |
| id: create_release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| tag_name: ${{ github.ref_name }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Upload AppImages to Release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| body: 'Automated AppImage build' | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |