mirror of
https://github.com/freedomofpress/dangerzone.git
synced 2025-04-28 18:02:38 +02:00

Now that we have GUI tests, it makes more sense to have running with the X11 socket mounted in the environment than not.
159 lines
4.6 KiB
YAML
159 lines
4.6 KiB
YAML
name: Tests
|
|
on:
|
|
push:
|
|
pull_request:
|
|
branches: [ main ]
|
|
schedule:
|
|
- cron: '0 0 * * *' # Run every day at 00:00 UTC.
|
|
|
|
jobs:
|
|
windows:
|
|
runs-on: windows-latest
|
|
env:
|
|
DUMMY_CONVERSION: True
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.11'
|
|
- run: pip install poetry
|
|
- run: poetry install
|
|
- name: Run CLI tests
|
|
run: poetry run make test
|
|
# Taken from: https://github.com/orgs/community/discussions/27149#discussioncomment-3254829
|
|
- name: Set path for candle and light
|
|
run: echo "C:\Program Files (x86)\WiX Toolset v3.11\bin" >> $GITHUB_PATH
|
|
shell: bash
|
|
- name: Build the MSI installer
|
|
# NOTE: This also builds the .exe internally.
|
|
run: poetry run .\install\windows\build-app.bat
|
|
|
|
macOS:
|
|
runs-on: macos-latest
|
|
env:
|
|
DUMMY_CONVERSION: True
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.10'
|
|
- run: pip install poetry
|
|
- run: poetry install
|
|
- name: Run CLI tests
|
|
run: poetry run make test
|
|
|
|
build-deb:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
target: debian-bookworm
|
|
distro: debian
|
|
version: bookworm
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.10'
|
|
|
|
- name: Build dev environment
|
|
run: |
|
|
./dev_scripts/env.py --distro ${{ env.distro }} \
|
|
--version ${{ env.version }} \
|
|
build-dev
|
|
|
|
- name: Build Dangerzone image
|
|
run: ./install/linux/build-image.sh
|
|
|
|
- name: Build Dangerzone .deb
|
|
run: |
|
|
./dev_scripts/env.py --distro ${{ env.distro }} \
|
|
--version ${{ env.version }} \
|
|
run --dev --no-gui ./dangerzone/install/linux/build-deb.py
|
|
|
|
- name: Upload Dangerzone .deb
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: dangerzone.deb
|
|
path: "deb_dist/dangerzone_*_all.deb"
|
|
|
|
install-deb:
|
|
runs-on: ubuntu-latest
|
|
needs: build-deb
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- target: ubuntu-20.04
|
|
distro: ubuntu
|
|
version: "20.04"
|
|
- target: ubuntu-22.04
|
|
distro: ubuntu
|
|
version: "22.04"
|
|
- target: ubuntu-23.04
|
|
distro: ubuntu
|
|
version: "23.04"
|
|
- target: debian-bullseye
|
|
distro: debian
|
|
version: bullseye
|
|
- target: debian-bookworm
|
|
distro: debian
|
|
version: bookworm
|
|
- target: debian-trixie
|
|
distro: debian
|
|
version: trixie
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.10'
|
|
|
|
- name: Download Dangerzone .deb
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: dangerzone.deb
|
|
path: "deb_dist/"
|
|
|
|
- name: Create end-user environment on (${{ matrix.target }})
|
|
run: |
|
|
./dev_scripts/env.py --distro ${{ matrix.distro }} \
|
|
--version ${{ matrix.version }} \
|
|
build
|
|
|
|
- name: Configure Podman for Debian Bullseye specifically
|
|
if: matrix.target == 'debian-bullseye'
|
|
run: |
|
|
# Create a Podman config specifically for Bullseye (see #388).
|
|
mkdir bullseye_fix
|
|
cd bullseye_fix
|
|
cat > containers.conf <<EOF
|
|
[engine]
|
|
cgroup_manager="cgroupfs"
|
|
events_logger="file"
|
|
EOF
|
|
|
|
# Copy the Podman config into the container image we created for the
|
|
# Dangerzone environment.
|
|
cat > Dockerfile.bullseye <<EOF
|
|
FROM dangerzone.rocks/debian:bullseye-backports
|
|
RUN mkdir -p /home/user/.config/containers
|
|
COPY containers.conf /home/user/.config/containers/
|
|
EOF
|
|
|
|
# Create a new image from the Dangerzone environment and re-tag it.
|
|
podman build -t dangerzone.rocks/debian:bullseye-backports \
|
|
-f Dockerfile.bullseye .
|
|
|
|
- name: Run a test command
|
|
run: |
|
|
./dev_scripts/env.py --distro ${{ matrix.distro }} \
|
|
--version ${{ matrix.version }} \
|
|
run dangerzone-cli dangerzone/tests/test_docs/sample-pdf.pdf
|
|
|
|
- name: Check that the Dangerzone GUI imports work
|
|
run: |
|
|
./dev_scripts/env.py --distro ${{ matrix.distro }} \
|
|
--version ${{ matrix.version }} \
|
|
run dangerzone --help
|