name: test on: push: branches: - 'master' paths-ignore: - '**.md' - '.github/workflows/doc.yml' - 'doc/**' - 'mkdocs.yml' pull_request: branches: - 'master' paths-ignore: - '**.md' - '.github/workflows/doc.yml' - 'doc/**' - 'mkdocs.yml' jobs: test: runs-on: ubuntu-18.04 strategy: fail-fast: false matrix: include: - php-version: 8.0 name: Unit skip-web-check: 1 database: mariadb:10.5 - php-version: 8.0 name: Web skip-unit-check: 1 database: mysql:5.7 - php-version: 7.4 name: Unit skip-web-check: 1 database: mysql:5.7 - php-version: 7.3 name: Unit skip-web-check: 1 database: mysql:8.0 - php-version: 7.3 name: Web skip-unit-check: 1 database: mysql:8.0 services: database: image: ${{ matrix.database }} env: MYSQL_ALLOW_EMPTY_PASSWORD: yes MYSQL_DATABASE: librenms_phpunit_78hunjuybybh MYSQL_USER: librenms MYSQL_PASSWORD: librenms ports: - 3306 steps: - name: Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: Set $FILES run: | FILES=$(git diff --diff-filter=d --name-only origin/master | tr '\n' ' '|sed 's/,*$//g') echo $FILES echo 'FILES<> $GITHUB_ENV echo $FILES >> $GITHUB_ENV echo 'EOF' >> $GITHUB_ENV - name: Set $PATH run: | echo "/home/runner/.local/bin/" >> $GITHUB_PATH - name: Set up PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} tools: composer,php-cs-fixer - name: Get composer cache directory id: composer-cache run: | echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache composer uses: actions/cache@v2 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ secrets.CACHE_VERSION }}-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-composer-${{ secrets.CACHE_VERSION }}- - name: Cache pip uses: actions/cache@v2 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ secrets.CACHE_VERSION }}-${{ hashFiles('**/requirements.txt') }} restore-keys: | ${{ runner.os }}-pip-${{ secrets.CACHE_VERSION }}- - name: Install packages run: | sudo apt-get -qq update sudo apt-get install -y fping python3-pip python3-setuptools snmp - name: Pip install run: | python3 -m pip install --upgrade pip python3 -m pip install --upgrade --user snmpsim pylint python-memcached mysqlclient - name: Composer validate run: | composer validate - name: Init env run: | cat > .env </tmp/artisan-serve.log 2>&1 & sleep 5 - name: Start SNMP if: matrix.skip-unit-check != '1' run: | ~/.local/bin/snmpsimd.py --data-dir=tests/snmpsim --agent-udpv4-endpoint=127.1.6.2:1162 --logging-method=file:/tmp/snmpsimd.log & - name: lnms dev:check ci run: | php lnms dev:check ci env: SKIP_UNIT_CHECK: ${{ matrix.skip-unit-check }} SKIP_WEB_CHECK: ${{ matrix.skip-web-check }} - name: Dump docker logs on failure if: failure() uses: jwalton/gh-docker-logs@v2 - name: Dump serve logs if: always() && matrix.skip-web-check != '1' run: | cat /tmp/artisan-serve.log - name: Dump snmp logs if: always() && matrix.skip-unit-check != '1' run: | cat /tmp/snmpsimd.log - name: Dump context if: always() uses: crazy-max/ghaction-dump-context@v1