@@ -14,66 +14,68 @@ jobs:
1414 steps :
1515
1616 # Set major PostgreSQL version for all underlying steps
17- - name : " Extract Postgres major version number"
17+ - uses : actions/checkout@v3
18+ - name : " Define PostreSQL major version"
1819 run : |
19- PG_MAJOR_VERSION=$(echo "$BRANCH_NAME" | grep --only-matching 'stable[0-9].' | grep --only-matching '[0-9].')
20+ patch_name=$(ls aqo_*.patch|tail -1)
21+ echo "CORE_PATCH_NAME=$patch_name" >> $GITHUB_ENV
2022
21- # Declare PG_MAJOR_VERSION as a environment variable
22- echo "PG_MAJOR_VERSION=$PG_MAJOR_VERSION" >> $GITHUB_ENV
23- echo "CORE_BRANCH_NAME=REL_${PG_MAJOR_VERSION}_STABLE" >> $GITHUB_ENV
24- echo "AQO_PATCH_NAME=aqo_pg$PG_MAJOR_VERSION.patch" >> $GITHUB_ENV
25- - name : " Set proper names for the master case"
23+ # we can get number, otherwise set up master
24+ vers_number=$(echo "$patch_name"|tr -d -c 0-9)
25+ echo "PG_MAJOR_VERSION=$vers_number" >> $GITHUB_ENV
26+
27+ branch_name="REL_${vers_number}_STABLE"
28+ echo "PG_BRANCH=$branch_name" >> $GITHUB_ENV
29+
30+ - name : " Set master branch name, if needed"
2631 if : env.PG_MAJOR_VERSION == ''
2732 run : |
28- echo "PG_MAJOR_VERSION=master" >> $GITHUB_ENV
29- echo "CORE_BRANCH_NAME=master" >> $GITHUB_ENV
30- echo "AQO_PATCH_NAME=aqo_master.patch" >> $GITHUB_ENV
33+ branch_name="master"
34+ echo "PG_BRANCH=$branch_name" >> $GITHUB_ENV
3135
32- - name : " Preparations"
36+ - name : " Environment (debug output)"
37+ if : ${{ always() }}
3338 run : |
34- sudo apt install libipc-run-perl libxml2-utils libxml2-dev xsltproc libxslt1-dev
35-
36- echo "Deploying to production server on branch" $BRANCH_NAME
39+ echo "Use PostgreSQL branch $PG_BRANCH (patch: $CORE_PATCH_NAME)"
40+ echo "Deploying to production server on branch" $BRANCH_NAME "(PG $PG_BRANCH)"
3741 git config --global user.email "ci@postgrespro.ru"
3842 git config --global user.name "CI PgPro admin"
39- git clone https://github.com/postgres/postgres.git pg
40- cd pg
41- git checkout $CORE_BRANCH_NAME
42- git clone https://github.com/postgrespro/aqo.git contrib/aqo
43- git -C contrib/aqo checkout $BRANCH_NAME
44- patch -p1 --no-backup-if-mismatch < contrib/aqo/$AQO_PATCH_NAME
45- COPT="-Werror"
46- CONFIGURE_OPTS="--prefix=`pwd`/tmp_install --enable-tap-tests --enable-cassert"
47- echo "CONFIGURE_OPTS=$CONFIGURE_OPTS" >> $GITHUB_ENV
48- echo "COPT=$COPT" >> $GITHUB_ENV
43+
44+ - name : " Prepare PG directory"
45+ run : |
46+ sudo apt install libipc-run-perl libxml2-utils libxml2-dev xsltproc libxslt1-dev
47+ git clone -b $PG_BRANCH --depth=1 --single-branch https://github.com/postgres/postgres.git $GITHUB_WORKSPACE/../pg
48+ cd $GITHUB_WORKSPACE/../pg
49+ cp -r ../aqo contrib/aqo
50+ patch -p1 --no-backup-if-mismatch < contrib/aqo/$CORE_PATCH_NAME
4951
5052 - name : " Paths"
5153 run : |
52- echo "$GITHUB_WORKSPACE/pg/contrib/aqo/.github/scripts/job" >> $GITHUB_PATH
53- ls -la pg/contrib/aqo/.github/scripts/job
54- echo "$GITHUB_WORKSPACE/pg/tmp_install/bin" >> $GITHUB_PATH
54+ cd $GITHUB_WORKSPACE/../pg
55+ echo "COPT=-Werror" >> $GITHUB_ENV
56+ echo "CONFIGURE_OPTS=--prefix=`pwd`/tmp_install --enable-tap-tests --enable-cassert" >> $GITHUB_ENV
57+ echo "$GITHUB_WORKSPACE/../pg/tmp_install/bin" >> $GITHUB_PATH
58+ echo "$GITHUB_WORKSPACE/../pg/contrib/aqo/.github/scripts/job" >> $GITHUB_PATH
5559 echo "LD_LIBRARY_PATH=$GITHUB_WORKSPACE/pg/tmp_install/lib" >> $GITHUB_ENV
5660 echo "PGDATABASE=`whoami`" >> $GITHUB_ENV
5761 echo "PGHOST=localhost" >> $GITHUB_ENV
5862 echo "PGDATA=PGDATA" >> $GITHUB_ENV
5963 echo "PGUSER=`whoami`" >> $GITHUB_ENV
6064 echo "PGPORT=5432" >> $GITHUB_ENV
6165
62- - name : " Debug"
63- run : |
64- echo "paths: $PATH"
65- echo "PG_MAJOR_VERSION: $PG_MAJOR_VERSION, CORE_BRANCH_NAME: $CORE_BRANCH_NAME, AQO_PATCH_NAME: $AQO_PATCH_NAME, CONFIGURE_OPTS: $CONFIGURE_OPTS"
66-
6766 - name : " Compilation"
6867 run : |
69- cd pg
70- ./configure $CONFIGURE_OPTS CFLAGS="-O2"
68+ cd $GITHUB_WORKSPACE/../pg
69+ echo "paths: $PATH"
70+ echo "COPT: $COPT"
71+ echo "CONFIGURE_OPTS: $CONFIGURE_OPTS"
72+ ./configure $CONFIGURE_OPTS CFLAGS="-O2" > /dev/null
7173 make -j4 > /dev/null && make -j4 -C contrib > /dev/null
7274 make install >> make.log && make -C contrib install > /dev/null
7375
7476 - name : " Launch AQO instance"
7577 run : |
76- cd pg
78+ cd $GITHUB_WORKSPACE/../ pg
7779
7880 # Launch an instance with AQO extension
7981 aqo_instance_launch.sh
@@ -84,29 +86,29 @@ jobs:
8486 # Pass installcheck in disabled mode
8587 - name : installcheck_disabled
8688 run : |
87- cd pg
89+ cd $GITHUB_WORKSPACE/../ pg
8890 psql -c "ALTER SYSTEM SET aqo.force_collect_stat = 'off'"
8991 psql -c "SELECT pg_reload_conf()"
9092 make installcheck-world
9193
9294 - name : installcheck_disabled_forced_stat
9395 run : |
94- cd pg
96+ cd $GITHUB_WORKSPACE/../ pg
9597 psql -c "ALTER SYSTEM SET aqo.force_collect_stat = 'on'"
9698 psql -c "SELECT pg_reload_conf()"
9799 make installcheck-world
98100
99101 - name : installcheck_frozen
100102 run : |
101- cd pg
103+ cd $GITHUB_WORKSPACE/../ pg
102104 psql -c "ALTER SYSTEM SET aqo.mode = 'frozen'"
103105 psql -c "ALTER SYSTEM SET aqo.force_collect_stat = 'on'"
104106 psql -c "SELECT pg_reload_conf()"
105107 make installcheck-world
106108
107109 - name : installcheck_controlled
108110 run : |
109- cd pg
111+ cd $GITHUB_WORKSPACE/../ pg
110112 psql -c "ALTER SYSTEM SET aqo.mode = 'controlled'"
111113 psql -c "ALTER SYSTEM SET aqo.force_collect_stat = 'on'"
112114 psql -c "SELECT pg_reload_conf()"
@@ -115,7 +117,7 @@ jobs:
115117 - name : installcheck_learn
116118 continue-on-error : true
117119 run : |
118- cd pg
120+ cd $GITHUB_WORKSPACE/../ pg
119121 psql -c "ALTER SYSTEM SET aqo.mode = 'learn'"
120122 psql -c "ALTER SYSTEM SET aqo.force_collect_stat = 'on'"
121123 psql -c "SELECT pg_reload_conf()"
@@ -124,7 +126,7 @@ jobs:
124126 - name : installcheck_intelligent
125127 continue-on-error : true
126128 run : |
127- cd pg
129+ cd $GITHUB_WORKSPACE/../ pg
128130 psql -c "ALTER SYSTEM SET aqo.mode = 'intelligent'"
129131 psql -c "ALTER SYSTEM SET aqo.force_collect_stat = 'on'"
130132 psql -c "SELECT pg_reload_conf()"
@@ -133,18 +135,18 @@ jobs:
133135 - name : installcheck_forced
134136 continue-on-error : true
135137 run : |
136- cd pg
138+ cd $GITHUB_WORKSPACE/../ pg
137139 psql -c "ALTER SYSTEM SET aqo.mode = 'forced'"
138140 psql -c "ALTER SYSTEM SET aqo.force_collect_stat = 'on'"
139141 psql -c "SELECT pg_reload_conf()"
140142 make -k installcheck-world
141143
142144 # Save Artifacts
143145 - name : Archive artifacts
144- if : ${{ failure () }}
146+ if : ${{ always () }}
145147 uses : actions/upload-artifact@v3
146148 with :
147- name : ${{ env.AQO_VERSION }}-${{ env.CORE_BRANCH_NAME }}-${{ env.BRANCH_NAME }}-artifacts
149+ name : ${{ env.AQO_VERSION }}-${{ env.PG_BRANCH }}-${{ env.CORE_PATCH_NAME }}-artifacts
148150 path : |
149151 pg/src/test/regress/regression.diffs
150152 pg/logfile.log
0 commit comments