name: coverage-test on: ["push", "pull_request"] jobs: build: name: coverage-test runs-on: ubuntu-latest steps: - name: Clone postgres repository uses: actions/checkout@v2 with: repository: 'postgres/postgres' ref: 'REL_13_STABLE' - name: Clone pg_stat_monitor repository uses: actions/checkout@v2 with: path: 'src/pg_stat_monitor' ref: 'master' - name: Install dependencies run: | sudo apt-get update sudo apt purge postgresql-client-common postgresql-common postgresql postgresql* sudo apt-get install libreadline6-dev systemtap-sdt-dev zlib1g-dev libssl-dev libpam0g-dev python-dev bison flex libipc-run-perl git lcov -y sudo rm -rf /var/lib/postgresql/ sudo rm -rf /var/log/postgresql/ sudo rm -rf /etc/postgresql/ sudo rm -rf /usr/lib/postgresql sudo rm -rf /usr/include/postgresql sudo rm -rf /usr/share/postgresql sudo rm -rf /etc/postgresql sudo rm -f /usr/bin/pg_config - name: Create pgsql dir run: mkdir -p /opt/pgsql - name: Build postgres run: | export PATH="/opt/pgsql/bin:$PATH" ./configure --enable-coverage --enable-tap-tests --prefix=/opt/pgsql make make install - name: Start postgresql cluster run: | export PATH="/opt/pgsql/bin:$PATH" /opt/pgsql/bin/initdb -D /opt/pgsql/data /opt/pgsql/bin/pg_ctl -D /opt/pgsql/data -l logfile start - name: Build pg_stat_monitor run: | export PATH="/opt/pgsql/bin:$PATH" sudo cp /opt/pgsql/bin/pg_config /usr/bin make USE_PGXS=1 make USE_PGXS=1 install working-directory: src/pg_stat_monitor/ - name: Start pg_stat_monitor_tests & Run code coverage run: | /opt/pgsql/bin/pg_ctl -D /opt/pgsql/data -l logfile stop echo "shared_preload_libraries = 'pg_stat_monitor'" >> /opt/pgsql/data/postgresql.conf /opt/pgsql/bin/pg_ctl -D /opt/pgsql/data -l logfile start make installcheck make coverage-html lcov --capture --directory . --output-file coverage/lcov.info pip install cpp-coveralls export COVERALLS_REPO_TOKEN="${{ secrets.COVERALL_PG_STAT_MONITOR_TOKEN }}" coveralls --verbose working-directory: src/pg_stat_monitor/