name: postgresql-13-pgdg-package on: [push] jobs: build: name: postgresql-13-pgdg-package runs-on: ubuntu-latest steps: - name: Clone pg_stat_monitor repository uses: actions/checkout@v2 with: path: 'src/pg_stat_monitor' - name: Delete old postgresql files run: | sudo apt-get update sudo apt purge postgresql-client-common postgresql-common postgresql postgresql* 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 sudo apt-get install libreadline6-dev systemtap-sdt-dev zlib1g-dev libssl-dev libpam0g-dev python-dev bison flex libipc-run-perl wget -y sudo /usr/bin/perl -MCPAN -e 'install IPC::RUN' sudo /usr/bin/perl -MCPAN -e 'install String::Util' sudo /usr/bin/perl -MCPAN -e 'install Data::Str2Num' - name: Install PG Distribution Postgresql 13 run: | sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update sudo apt-get -y install postgresql-13 postgresql-client-13 postgresql-contrib postgresql-server-dev-13 sudo chown -R postgres:postgres src/ sudo cpan install IPC::RUN sudo cpan install String::Util - name: Build pg_stat_monitor run: | export PATH="/usr/lib/postgresql/13/bin:$PATH" sudo cp /usr/lib/postgresql/13/bin/pg_config /usr/bin sudo make USE_PGXS=1 sudo make USE_PGXS=1 install working-directory: src/pg_stat_monitor/ - name: Start pg_stat_monitor_tests run: | sudo service postgresql stop echo "shared_preload_libraries = 'pg_stat_monitor'" | sudo tee -a /etc/postgresql/13/main/postgresql.conf sudo service postgresql start sudo -u postgres bash -c 'make installcheck USE_PGXS=1' working-directory: src/pg_stat_monitor/ - name: Change dir permissions on fail if: ${{ failure() }} run: | sudo chmod -R ugo+rwx t sudo chmod -R ugo+rwx tmp_check exit 2 # regenerate error so that we can upload files in next step working-directory: src/pg_stat_monitor/ - name: Upload logs on fail if: ${{ failure() }} uses: actions/upload-artifact@v2 with: name: Regressions diff and postgresql log path: | src/pg_stat_monitor/regression.diffs src/pg_stat_monitor/regression.out src/pg_stat_monitor/logfile src/pg_stat_monitor/t/results/ src/pg_stat_monitor/tmp_check/log/ !src/pg_stat_monitor/tmp_check/**/archives/* !src/pg_stat_monitor/tmp_check/**/backup/* !src/pg_stat_monitor/tmp_check/**/pgdata/* !src/pg_stat_monitor/tmp_check/**/archives/ !src/pg_stat_monitor/tmp_check/**/backup/ !src/pg_stat_monitor/tmp_check/**/pgdata/ if-no-files-found: warn retention-days: 1