diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d384ce0..05d2ef4 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -5,17 +5,64 @@ on: [push] jobs: build: runs-on: ubuntu-latest + container: python:3.8.7 + + services: + postgres: + image: postgres:10.8 + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: postgres + ports: + - 5432:5432 + # needed because the postgres container does not provide a healthcheck + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: 3.8.6 + + - name: Install postgresql-client package + run: | + apt-get update + apt-get install --yes --no-install-recommends postgresql-client + + - name: Create database + run: | + createdb airflow + env: + PGUSER: postgres + PGPASSWORD: postgres + PGHOST: postgres + - name: Install dependencies run: | + python -m venv env + . env/bin activate pip --version + pip install wheel pip install -r requirements.txt --use-deprecated=legacy-resolver + pip list + + - name: db init + env: + AIRFLOW__CORE__UNIT_TEST_MODE: True + AIRFLOW__CORE__DAGS_FOLDER: src/dags + AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgres://postgres:postgres@postgres/airflow + AIRFLOW__CORE__EXECUTOR: LocalExecutor + run: | + . env/bin activate + airflow db init + - name: Test with pytest run: | + . env/bin activate pytest + + env: + AIRFLOW__CORE__UNIT_TEST_MODE: True + AIRFLOW__CORE__DAGS_FOLDER: src/dags + AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgres://postgres:postgres@postgres/airflow + AIRFLOW__CORE__EXECUTOR: LocalExecutor + + \ No newline at end of file diff --git a/README.md b/README.md index b3d17c6..d16837c 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ executor = LocalExecutor By default `dags_folder` will be set to `$AIRFLOW_HOME/dags`. To run these dags, configure it to point to the `src/dags` directory ([either in the airflow config or via environment variables](https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html#dags-folder)). -Run `airflow initdb` +Run `airflow db init` ### Database setup Create a postgres database for all the data to go into. E.g. on ubuntu: