mirror of
https://github.com/freedomofpress/dangerzone.git
synced 2025-05-02 11:42:23 +02:00

Python 3.10.12 fixes some CVEs for which Dangerzone does not appear to be affected, however its binaries are not made available by the python foundation. Moving to 3.11 should be trivial since this was already deployed in Fedora 37+.
156 lines
4.4 KiB
YAML
156 lines
4.4 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 ./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-22.10
|
|
distro: ubuntu
|
|
version: "22.10"
|
|
- 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
|