Update ci.yml #162
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
'on': | |
schedule: | |
- cron: '30 5 * * 1' # Every Monday at 5:30 | |
pull_request: | |
push: | |
branches: | |
- develop | |
env: | |
UBSAN_OPTIONS: print_stacktrace=1 | |
jobs: | |
posix: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: ubuntu-22.04 | |
make: test-debug | |
info: g++-9 + test-debug | |
- os: ubuntu-22.04 | |
make: test-release | |
info: g++-9 + test-release | |
name: '${{matrix.os}}: ${{matrix.info}}' | |
runs-on: ${{matrix.os}} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Reuse ccache directory | |
uses: actions/cache@v4 | |
with: | |
path: ~/.ccache | |
key: '${{matrix.os}} ${{matrix.info}} ccache-dir ${{github.ref}} run-${{github.run_number}}' | |
restore-keys: | | |
${{matrix.os}} ${{matrix.info}} ccache-dir ${{github.ref}} run-' | |
${{matrix.os}} ${{matrix.info}} ccache- | |
- name: Install packages | |
run: | | |
(cd third_party && git clone -b develop --single-branch --depth 1 https://github.com/userver-framework/userver.git) | |
sudo apt update | |
sudo apt install --allow-downgrades -y postgresql $(cat third_party/userver/scripts/docs/en/deps/${{matrix.os}}.md | tr '\n' ' ') | |
python3 -m pip install -r requirements.txt | |
- name: Install postgres 15 | |
if: matrix.os == 'ubuntu-22.04' | |
run: | | |
# GH Ubuntu image has libpq version 15+ from pg's repo that is API incompatible with postgresql-14. | |
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7FCC7D46ACCC4CF8 | |
echo "deb https://apt-archive.postgresql.org/pub/repos/apt jammy-pgdg-archive main" | sudo tee /etc/apt/sources.list.d/pgdg.list | |
sudo apt update | |
sudo apt install -y postgresql-16 postgresql-client-16 postgresql-server-dev-16 | |
- name: Setup ccache | |
run: | | |
ccache -M 2.0GB | |
ccache -s | |
- name: Run ${{matrix.make}} | |
run: | | |
make ${{matrix.make}} | |
- name: Test install ${{matrix.make}} | |
if: matrix.make == 'test-release' | |
run: | | |
make dist-clean | |
make install PREFIX=`pwd`/local_installation/ | |
- name: Test run after install | |
if: matrix.make == 'test-release' | |
run: >- | |
./local_installation/bin/pg_grpc_service_template | |
--config=./local_installation/etc/pg_grpc_service_template/static_config.yaml | |
--config_vars=./local_installation/etc/pg_grpc_service_template/config_vars.yaml | |
& | |
- name: Check work run service | |
if: matrix.make == 'test-release' | |
run: | | |
ps aux | grep pg_grpc_service_template | grep config && curl http://localhost:8080/ping -v | |
- name: Stop all | |
if: matrix.make == 'test-release' | |
run: | | |
killall pg_grpc_service_template |