name: Tests on: push: branches: [master] pull_request: types: [opened, reopened, synchronize, edited] branches: [master] jobs: pre-commit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 - uses: pre-commit/action@v2.0.3 check-shell: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 - run: | python -m venv venv && source venv/bin/activate pip install gh-release-install sudo venv/bin/gh-release-install \ koalaman/shellcheck \ shellcheck-{tag}.linux.x86_64.tar.xz --extract shellcheck-{tag}/shellcheck \ /usr/bin/shellcheck sudo venv/bin/gh-release-install \ mvdan/sh \ shfmt_{tag}_linux_amd64 \ /usr/bin/shfmt - run: SEVERITY=warning make shell-check test-legacy: strategy: matrix: include: - runs-on: ubuntu-18.04 php-version: "7.2" runs-on: ${{ matrix.runs-on }} env: ENVIRONMENT: testing LIBRETIME_LOG_DIR: /tmp/log/libretime steps: - uses: actions/checkout@v2 - name: Setup PostgreSQL run: | sudo systemctl start postgresql.service pg_isready sudo -u postgres psql -c 'CREATE DATABASE libretime;' sudo -u postgres psql -c "CREATE USER libretime WITH PASSWORD 'libretime';" sudo -u postgres psql -c 'GRANT CONNECT ON DATABASE libretime TO libretime;' sudo -u postgres psql -c 'ALTER USER libretime CREATEDB;' - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} - name: Get Composer Cache Directory id: composer-cache run: | echo "::set-output name=dir::$(composer config cache-files-dir)" - uses: actions/cache@v2 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-composer- - name: Install dependencies run: | composer install --no-progress --dev - name: Run PHP tests run: | sudo mkdir -p "$LIBRETIME_LOG_DIR" sudo chown runner:runner "$LIBRETIME_LOG_DIR" cd airtime_mvc/tests php ../../vendor/bin/phpunit test: runs-on: ubuntu-latest strategy: fail-fast: false matrix: release: [bionic, buster] context: [python_apps/airtime_analyzer, python_apps/api_clients] container: ghcr.io/libretime/libretime-dev:${{ matrix.release }} defaults: run: shell: bash steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ matrix.context }}-${{ hashFiles('**/setup.py', '**/requirements-dev.txt') }} restore-keys: | ${{ runner.os }}-pip-${{ matrix.context }} - name: Install dependencies run: | python3 -m venv venv && source venv/bin/activate pip install --upgrade pip setuptools wheel pip install -r requirements-dev.txt pip install -e . working-directory: ${{ matrix.context }} - name: Test run: | source venv/bin/activate make test working-directory: ${{ matrix.context }}