Skip to content

Fix github actions runner failures due to debian buster packages only being available on archive. #119

Fix github actions runner failures due to debian buster packages only being available on archive.

Fix github actions runner failures due to debian buster packages only being available on archive. #119

name: Migrations for SQLite versions
on: [push, pull_request]
jobs:
pre_job:
name: Path match check
runs-on: ubuntu-latest
# Map a step output to a job output
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@master
with:
github_token: ${{ github.token }}
paths: '["morango/migrations/*.py", ".github/workflows/check_migrations_sqlite.yml", "setup.py", "requirements/*.txt"]'
migration_test:
name: SQLite migration tests
needs: pre_job
runs-on: ubuntu-latest
container:
image: python:3.7-buster
steps:
- uses: actions/checkout@v4
- name: Install build dependencies
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
run: |
echo "deb http://archive.debian.org/debian-archive/debian/ buster main" > /etc/apt/sources.list
echo "deb http://archive.debian.org/debian-archive/debian-security/ buster/updates main" >> /etc/apt/sources.list
echo "Acquire::Check-Valid-Until \"false\";" > /etc/apt/apt.conf.d/99archive
apt-get -y -qq update
apt-get install -y build-essential tcl
- name: Build SQLite 3.25.3
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
run: |
# Following the instructions from https://til.simonwillison.net/sqlite/ld-preload
# to build SQLite from source, using version 3.25.3
tar -xzvf tests/SQLite-89e099fb.tar.gz
cd SQLite-89e099fb
CPPFLAGS="-DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_RTREE=1" ./configure
make
LD_PRELOAD=.libs/libsqlite3.so python3 -c \
'import sqlite3; assert sqlite3.connect(":memory").execute("select sqlite_version()").fetchone()[0] == "3.25.3"'
# Once we have confirmed that this works, set it for subsequent steps
echo "LD_PRELOAD=$(realpath .libs/libsqlite3.so)" >> $GITHUB_ENV
- uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies
run: pip install .
- name: Run migrations
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
run: python tests/testapp/manage.py migrate