name: Build binaries on: push: branches: [ master ] jobs: build: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Install compilers run: | sudo apt update ; sudo apt install -y gcc-mingw-w64-i686 gcc-mingw-w64-x86-64 - name: Compile run: | ./bundle_calibre_plugin.sh - name: Upload uses: actions/upload-artifact@v2 with: name: linux path: | calibre-plugin.zip test-ubuntu-2004: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - 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 freezegun lxml pycryptodome rsa oscrypto "cryptography>=3.1" # Install Python2 stuff curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py python2 get-pip.py pip2 install freezegun mock lxml pycryptodome "rsa<=4.3" oscrypto cryptography==3.1 - 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: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 - 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. # Require oscrypto > 1.3.0 because all versions until 1.3.0 had no (or broken) OpenSSL 3 support. pip3 install freezegun lxml pycryptodome rsa "oscrypto>1.3.0" "cryptography>=3.1" # 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 install freezegun mock lxml pycryptodome "rsa<=4.3" "oscrypto>1.3.0" cryptography==3.1 - 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@v2 - 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 freezegun lxml pycryptodome rsa oscrypto "cryptography>=3.1" shell: bash - name: Run tests (Python 3) run: | cd tests && python3 ./main.py && cd .. shell: bash - name: Setup Python 2 uses: actions/setup-python@v3 with: python-version: '2.x' - name: Install deps for Python 2 run: | # Install Python2 stuff python -m pip install freezegun mock lxml pycryptodome "rsa<=4.3" oscrypto cryptography==3.1 - name: Run tests (Python 2) run: | cd tests && PYTHONWARNINGS=ignore python ./main.py && cd .. shell: bash test-mac: runs-on: macos-11 steps: - uses: actions/checkout@v2 - 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 freezegun lxml pycryptodome rsa oscrypto "cryptography>=3.1" # Install Python2 stuff curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py python2 get-pip.py pip2 install freezegun mock lxml pycryptodome "rsa<=4.3" oscrypto cryptography==3.1 - 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 ..