Skip to content

Fix FileIndexer to accept iterable of paths; add multi-path indexer test #3

Fix FileIndexer to accept iterable of paths; add multi-path indexer test

Fix FileIndexer to accept iterable of paths; add multi-path indexer test #3

Workflow file for this run

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 }}