feat: make libcrypto and libssl paths overrideable #215
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build binaries | |
on: | |
push: | |
branches: [ master ] | |
jobs: | |
build: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install compilers | |
run: | | |
sudo apt update | |
sudo apt install -y gcc-mingw-w64-i686 gcc-mingw-w64-x86-64 | |
sudo apt install -y wget make zip | |
- name: Compile | |
run: | | |
./bundle_calibre_plugin.sh | |
./bundle_migration_plugin.sh | |
- name: Upload | |
uses: actions/upload-artifact@v3 | |
with: | |
name: calibre-plugins | |
path: | | |
calibre-plugin.zip | |
calibre-migration-plugin.zip | |
test-python3: | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] | |
# 3.5 is broken due to SSL issues? Todo. | |
# 3.13-dev currently broken due to lxml | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install python requirements | |
run: pip install -r ./.github/workflows/ci_test_requirements.txt | |
- name: Run tests | |
run: | | |
cd tests && python --version && PYTHONWARNINGS=ignore python ./main.py | |
test-python2: | |
runs-on: ubuntu-20.04 | |
container: python:2.7 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install python requirements | |
run: pip install -r ./.github/workflows/ci_test_requirements.txt | |
- name: Run tests | |
run: | | |
cd tests && python --version && PYTHONWARNINGS=ignore python ./main.py | |
test-ubuntu-2004: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
pip3 install -r ./.github/workflows/ci_test_requirements.txt | |
# Install Python2 stuff | |
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py | |
python2 get-pip.py | |
pip2 --no-python-version-warning install -r ./.github/workflows/ci_test_requirements.txt | |
- name: Run tests (Python 3) | |
run: | | |
cd tests && python3 ./main.py && cd .. | |
- name: Run tests (Python 2) | |
run: | | |
cd tests && PYTHONWARNINGS=ignore python2 ./main.py && cd .. | |
test-ubuntu-2204-oscrypto: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
id: pip-stuff | |
continue-on-error: true | |
run: | | |
# Require oscrypto > 1.3.0 because all versions until 1.3.0 had no (or broken) OpenSSL 3 support. | |
pip3 install "oscrypto>1.3.0" | |
pip3 install -r ./.github/workflows/ci_test_requirements.txt | |
# Install Python2 stuff | |
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py | |
sudo apt install python2 | |
python2 get-pip.py | |
pip2 --no-python-version-warning install "oscrypto>1.3.0" | |
pip2 --no-python-version-warning install -r ./.github/workflows/ci_test_requirements.txt | |
- name: Run tests (Python 3) | |
if: steps.pip-stuff.outcome == 'success' && steps.pip-stuff.conclusion == 'success' | |
run: | | |
cd tests && python3 ./main.py && cd .. | |
- name: Run tests (Python 2) | |
if: steps.pip-stuff.outcome == 'success' && steps.pip-stuff.conclusion == 'success' | |
run: | | |
cd tests && PYTHONWARNINGS=ignore python2 ./main.py && cd .. | |
test-ubuntu-2204-oscrypto-fork: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
# Require cryptography >= 3.1 because in 3.0 and below, the backend param in load_key_and_certificates was still required. | |
# Installing a forked version of oscrypto to fix OpenSSL 3 issues | |
pip3 install https://github.com/Leseratte10/acsm-calibre-plugin/releases/download/config/oscrypto_1.3.0_fork_2023-12-19.zip | |
pip3 install -r ./.github/workflows/ci_test_requirements.txt | |
# Install Python2 stuff | |
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py | |
sudo apt install python2 | |
python2 get-pip.py | |
pip2 --no-python-version-warning install https://github.com/Leseratte10/acsm-calibre-plugin/releases/download/config/oscrypto_1.3.0_fork_2023-12-19.zip | |
pip2 --no-python-version-warning install -r ./.github/workflows/ci_test_requirements.txt | |
- name: Run tests (Python 3) | |
run: | | |
cd tests && python3 ./main.py && cd .. | |
- name: Run tests (Python 2) | |
run: | | |
cd tests && PYTHONWARNINGS=ignore python2 ./main.py && cd .. | |
test-windows: | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
# Require cryptography >= 3.1 because in 3.0 and below, the backend param in load_key_and_certificates was still required. | |
pip3 install -r ./.github/workflows/ci_test_requirements.txt | |
shell: bash | |
- name: Run tests (Python 3) | |
run: | | |
cd tests && python3 ./main.py && cd .. | |
shell: bash | |
test-mac: | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
pip3 install -r ./.github/workflows/ci_test_requirements.txt | |
- name: Run tests (Python 3) | |
run: | | |
cd tests && python3 ./main.py && cd .. |