# -*- coding: utf-8 -*- # # Copyright (C) 2020-2022 Graz University of Technology. # # invenio-theme-tugraz is free software; you can redistribute it and/or # modify it under the terms of the MIT License; see LICENSE file for more # details. name: CI on: push: branches: master pull_request: branches: master schedule: # * is a special character in YAML so you have to quote this string - cron: '0 3 * * 6' workflow_dispatch: inputs: reason: description: 'Reason' required: false default: 'Manual trigger' jobs: Tests: runs-on: ubuntu-20.04 strategy: matrix: python-version: [3.8, 3.9] requirements-level: [pypi] db-service: [postgresql13] search-service: [opensearch2] include: - search-service: opensearch2 SEARCH_EXTRAS: "opensearch2" env: DB: ${{ matrix.db-service }} SEARCH: ${{ matrix.search-service }} EXTRAS: tests,${{ matrix.SEARCH_EXTRAS }} steps: - name: Checkout uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Generate dependencies run: | pip install wheel requirements-builder requirements-builder -e "$EXTRAS" --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt - name: Cache pip uses: actions/cache@v2 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('.${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt') }} - name: Install dependencies run: | pip install -r .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt pip install ".[$EXTRAS]" pip freeze docker --version docker-compose --version - name: Run tests run: | ./run-tests.sh