autopsy-flatpak/.github/workflows/build-flatpak.yml
2025-06-24 20:47:54 +00:00

142 lines
4.1 KiB
YAML

name: Build Autopsy Flatpak
on:
# Manual trigger
workflow_dispatch:
inputs:
autopsy_version:
description: 'Autopsy version to build (e.g., autopsy-4.22.1)'
required: false
type: string
default: 'autopsy-4.22.1'
sleuthkit_version:
description: 'Sleuth Kit version (e.g., sleuthkit-4.14.0)'
required: false
type: string
default: 'sleuthkit-4.14.0'
# Test builds on PRs
pull_request:
paths:
- 'flatpak/**'
- '.github/workflows/**'
env:
FLATPAK_BUILDER_CACHE: .flatpak-builder
MANIFEST_PATH: flatpak/org.sleuthkit.Autopsy.yml
jobs:
build-flatpak:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Flatpak and dependencies
run: |
sudo apt update
sudo apt install -y flatpak flatpak-builder
# Add Flathub repository
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# Install required runtimes
sudo flatpak install -y flathub org.gnome.Platform//47
sudo flatpak install -y flathub org.gnome.Sdk//47
sudo flatpak install -y flathub org.freedesktop.Sdk.Extension.openjdk17//24.08
- name: Setup Flatpak builder cache
uses: actions/cache@v4
with:
path: |
.flatpak-builder
build-dir
key: flatpak-builder-${{ runner.os }}-${{ hashFiles('flatpak/org.sleuthkit.Autopsy.yml') }}
restore-keys: |
flatpak-builder-${{ runner.os }}-
- name: Build Flatpak
run: |
mkdir -p build-dir repo
# Build with network access for downloading sources
flatpak-builder \
--repo=repo \
--force-clean \
--ccache \
--install-deps-from=flathub \
--default-branch=stable \
--subject="Build of Autopsy ${{ github.event.inputs.autopsy_version || 'autopsy-4.22.1' }}" \
build-dir \
${{ env.MANIFEST_PATH }}
- name: Export bundle
run: |
VERSION="${{ github.event.inputs.autopsy_version || 'autopsy-4.22.1' }}"
flatpak build-bundle repo autopsy-${VERSION}.flatpak org.sleuthkit.Autopsy stable
#- name: Test installation
# run: |
# export DC_DIR="/tmp/dconf"
# mkdir -p "$DC_DIR"
# export DCONF_USER_CONFIG="$DC_DIR/user"
# export XDG_RUNTIME_DIR="$DC_DIR"
# # Install the bundle
# sudo flatpak install -y --noninteractive autopsy-*.flatpak
#
# # Basic smoke test
# flatpak info org.sleuthkit.Autopsy
#
# # Check that binary exists
# flatpak run --command=sh org.sleuthkit.Autopsy -c "test -x /app/bin/autopsy && echo 'Binary check passed'"
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: autopsy-flatpak
path: |
autopsy-*.flatpak
retention-days: 30
create-release:
needs: build-flatpak
if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: autopsy-flatpak
- name: Create Release
uses: softprops/action-gh-release@v1
with:
tag_name: flatpak-${{ github.event.inputs.autopsy_version || 'autopsy-4.22.1' }}
name: Autopsy Flatpak ${{ github.event.inputs.autopsy_version || 'autopsy-4.22.1' }}
body: |
# Autopsy Flatpak Release
## Installation
```bash
# Install from bundle
flatpak install autopsy-${{ github.event.inputs.autopsy_version || 'autopsy-4.22.1' }}.flatpak
# Run Autopsy
flatpak run org.sleuthkit.Autopsy
```
## Requirements
- Flatpak runtime installed
- GNOME Platform 47
Built from upstream sources.
files: |
autopsy-*.flatpak
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}