Skip to content

Reapply "flatmanager: Use single with statement" #1358

Reapply "flatmanager: Use single with statement"

Reapply "flatmanager: Use single with statement" #1358

Workflow file for this run

name: CI
on:
push:
branches: master
paths-ignore:
- 'flatpak_builder_lint/staticfiles/exceptions.json'
- '.git-blame-ignore-revs'
- '.gitignore'
- '.pre-commit-config.yaml'
- 'CODEOWNERS'
- 'LICENSE'
- 'README.md'
pull_request:
branches: master
paths-ignore:
- 'flatpak_builder_lint/staticfiles/exceptions.json'
- '.git-blame-ignore-revs'
- '.gitignore'
- '.pre-commit-config.yaml'
- 'CODEOWNERS'
- 'LICENSE'
- 'README.md'
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Validate exceptions.json
run: python3 utils/validator.py
- name: Set up dependencies
run: |
sudo add-apt-repository ppa:flatpak/development
sudo apt-get update
sudo apt-get install -y jq flatpak flatpak-builder curl dbus-daemon libgirepository1.0-dev gir1.2-ostree-1.0 gzip xmlstarlet
- name: Setup Poetry
run: |
curl -sSL https://install.python-poetry.org | python3 -
sudo ln -s /github/home/.local/bin/poetry /usr/bin/poetry
- uses: actions/cache@v4
with:
path: ~/.cache/pypoetry
key: ${{ runner.os }}-poetry-${{ hashFiles('poetry.lock') }}
- name: Install python dependencies
run: |
poetry install
- name: Check code formatting
run: poetry run ruff format --check .
- name: Lint
run: poetry run ruff check --output-format=github .
- name: Check python types
run: poetry run mypy .
- name: Allow file:// clones with git>=2.38.1
run: |
git config --global protocol.file.allow always
- name: Set up flathub remote
run: |
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak remote-add --user --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo
- name: Build and test org.flatpak.Builder
run: |
git clone --depth=1 --branch master --recursive --single-branch https://github.com/flathub/org.flatpak.Builder.git build/org.flatpak.Builder
cd build && python3 ../docker/rewrite-manifest.py && cd org.flatpak.Builder
rm -v flatpak-builder-lint-deps.json && cp -v ../../docker/flatpak-builder-lint-deps.json .
flatpak-builder --verbose --user --force-clean --repo=repo \
--install-deps-from=flathub --default-branch=localtest --ccache \
--install builddir org.flatpak.Builder.json
flatpak run org.flatpak.Builder//localtest --version
- name: Sanity check the linter
run: |
cd build/org.flatpak.Builder
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest --exceptions manifest org.flatpak.Builder.json
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest --exceptions builddir builddir
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest --exceptions repo repo
- name: Check a baseapp
run: |
git clone --depth=1 --recursive --single-branch https://github.com/flathub/org.chromium.Chromium.BaseApp.git org.chromium.Chromium.BaseApp
cd org.chromium.Chromium.BaseApp
git submodule update --init --recursive
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest --exceptions manifest org.chromium.Chromium.BaseApp.yaml
flatpak-builder --verbose --user --force-clean --repo=repo \
--install-deps-from=flathub --ccache builddir org.chromium.Chromium.BaseApp.yaml
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest --exceptions builddir builddir
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest --exceptions repo repo
- name: Check an extension
run: |
git clone --depth=1 --recursive --single-branch https://github.com/flathub/org.gtk.Gtk3theme.Helium.git org.gtk.Gtk3theme.Helium
cd org.gtk.Gtk3theme.Helium
git submodule update --init --recursive
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest --exceptions manifest org.gtk.Gtk3theme.Helium.yml
flatpak-builder --verbose --user --force-clean --repo=repo \
--install-deps-from=flathub --ccache builddir org.gtk.Gtk3theme.Helium.yml
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest --exceptions builddir builddir
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest --exceptions repo repo
- name: Check a console application
run: |
cd tests/repo/min_success_metadata/console-app
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest --exceptions manifest org.flathub.cli.yaml
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest appstream org.flathub.cli.metainfo.xml
flatpak-builder --verbose --user --force-clean --repo=repo \
--install-deps-from=flathub --ccache builddir org.flathub.cli.yaml
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest --exceptions builddir builddir
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest --exceptions repo repo
- name: Check a GUI application
run: |
cd tests/repo/min_success_metadata/gui-app
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest --exceptions manifest org.flathub.gui.yaml
dbus-run-session flatpak run org.flatpak.Builder --verbose --user --force-clean --repo=repo \
--mirror-screenshots-url=https://dl.flathub.org/media \
--install-deps-from=flathub --ccache builddir org.flathub.gui.yaml
mkdir -p builddir/files/share/app-info/media
ostree commit --repo=repo --canonical-permissions --branch=screenshots/x86_64 builddir/files/share/app-info/media
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest --exceptions builddir builddir
flatpak run --command=flatpak-builder-lint org.flatpak.Builder//localtest --exceptions repo repo
- name: Perform Flatmanager checks
run: sh -c tests/flatmanager.sh
- name: Set up appstreamcli
run: |
echo '#!/bin/sh' > /usr/local/bin/appstreamcli
echo "exec dbus-run-session flatpak run --branch=localtest --command=appstreamcli org.flatpak.Builder \${@}" >> /usr/local/bin/appstreamcli
chmod +x /usr/local/bin/appstreamcli
appstreamcli --version
- name: Run test suite
run: poetry run pytest -v tests