Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: use reusable workflows #334

Merged
merged 1 commit into from
Sep 11, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 11 additions & 61 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,15 @@ name: CI

on:
push:
branches: master
branches:
- master
- "feature/*"
- "maint-*"
pull_request:
branches: master
branches:
- master
- "feature/*"
- "maint-*"
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '0 3 * * 6'
Expand All @@ -26,62 +32,6 @@ on:

jobs:
Tests:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.7, 3.8, 3.9]
requirements-level: [pypi]
db-service: [postgresql13, mysql8]

include:
- db-service: postgresql13
DB: postgresql
POSTGRESQL_VERSION: POSTGRESQL_13_LATEST
SQLALCHEMY_DATABASE_URI: "postgresql+psycopg2://invenio:invenio@localhost:5432/invenio"

- db-service: mysql8
DB: mysql
MYSQL_VERSION: MYSQL_8_LATEST
SQLALCHEMY_DATABASE_URI: "mysql+pymysql://invenio:invenio@localhost:3306/invenio"

env:
SQLALCHEMY_DATABASE_URI: ${{matrix.SQLALCHEMY_DATABASE_URI}}
POSTGRESQL_VERSION: ${{matrix.POSTGRESQL_VERSION}}
MYSQL_VERSION: ${{matrix.MYSQL_VERSION}}
DB: ${{ matrix.DB }}
EXTRAS: tests

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" ${{ matrix.requirements-file }} --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 translations test
run: ./run-i18n-tests.sh

- name: Run tests
run: |
./run-tests.sh
uses: inveniosoftware/workflows/.github/workflows/tests-python.yml@master
with:
extras: "tests"