Skip to content

Commit 2fdc550

Browse files
[CI] Artifacts are uploaded (#330)
1 parent 63393a9 commit 2fdc550

File tree

7 files changed

+94
-35
lines changed

7 files changed

+94
-35
lines changed

.github/workflows/package-verification.yml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,27 @@ jobs:
106106
steps:
107107
- name: Prepare variables
108108
run: |
109+
RUN_CFG__NOW="$(date +'%Y%m%d_%H%M%S')"
110+
echo "RUN_CFG__NOW=$RUN_CFG__NOW" >> $GITHUB_ENV
111+
RUN_CFG__LOGS_DIR="logs-${{ matrix.platform }}-py${{ matrix.python }}-pg${{ matrix.postgres }}"
112+
echo "RUN_CFG__LOGS_DIR=$RUN_CFG__LOGS_DIR" >> $GITHUB_ENV
109113
RUN_CFG__DOCKER_IMAGE_NAME="tests-${{ matrix.platform }}-py${{ matrix.python }}-pg${{ matrix.postgres }}"
110114
echo "RUN_CFG__DOCKER_IMAGE_NAME=$RUN_CFG__DOCKER_IMAGE_NAME" >> $GITHUB_ENV
111115
echo "---------- [$GITHUB_ENV]"
112116
cat $GITHUB_ENV
117+
- name: Prepare logs folder on the host
118+
run: mkdir -p "${{ env.RUN_CFG__LOGS_DIR }}"
119+
- name: Adjust logs folder permission
120+
run: chmod -R 777 "${{ env.RUN_CFG__LOGS_DIR }}"
113121
- name: Checkout
114122
uses: actions/checkout@v4
115123
- name: Build local image ${{ matrix.alpine }}
116124
run: docker build --build-arg PG_VERSION="${{ matrix.postgres }}" --build-arg PYTHON_VERSION="${{ matrix.python }}" -t "${{ env.RUN_CFG__DOCKER_IMAGE_NAME }}" -f Dockerfile--${{ matrix.platform }}.tmpl .
117125
- name: Run
118-
run: docker run $(bash <(curl -s https://codecov.io/env)) -t "${{ env.RUN_CFG__DOCKER_IMAGE_NAME }}"
126+
run: docker run $(bash <(curl -s https://codecov.io/env)) -t -v ${{ github.workspace }}/${{ env.RUN_CFG__LOGS_DIR }}:/home/test/testgres/logs "${{ env.RUN_CFG__DOCKER_IMAGE_NAME }}"
127+
- name: Upload Logs
128+
uses: actions/upload-artifact@v4
129+
if: always() # IT IS IMPORTANT!
130+
with:
131+
name: testgres--test_logs--${{ env.RUN_CFG__NOW }}-${{ matrix.platform }}-py${{ matrix.python }}-pg${{ matrix.postgres }}-id${{ github.run_id }}
132+
path: "${{ env.RUN_CFG__LOGS_DIR }}/"

Dockerfile--altlinux_10.tmpl

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,12 @@ FROM base2_with_python-${PYTHON_VERSION} as final
7373
RUN adduser test -G wheel
7474

7575
# It enables execution of "sudo service ssh start" without password
76-
RUN sh -c "echo \"WHEEL_USERS ALL=(ALL:ALL) NOPASSWD: ALL\"" >> /etc/sudoers
76+
RUN echo "WHEEL_USERS ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers
7777

78-
ADD --chown=test:test . /pg/testgres
79-
WORKDIR /pg/testgres
78+
ADD --chown=test:test . /home/test/testgres
79+
WORKDIR /home/test/testgres
80+
RUN mkdir /home/test/testgres/logs
81+
RUN chown -R test:test /home/test/testgres/logs
8082

8183
ENV LANG=C.UTF-8
8284

@@ -93,7 +95,10 @@ ENTRYPOINT sh -c " \
9395
set -eux; \
9496
echo HELLO FROM ENTRYPOINT; \
9597
echo HOME DIR IS [`realpath ~/`]; \
98+
ls -la .; \
9699
sudo /usr/sbin/sshd; \
100+
sudo chmod 777 /home/test/testgres/logs; \
101+
ls -la . | grep logs; \
97102
ssh-keyscan -H localhost >> ~/.ssh/known_hosts; \
98103
ssh-keyscan -H 127.0.0.1 >> ~/.ssh/known_hosts; \
99104
ssh-keygen -t rsa -f ~/.ssh/id_rsa -q -N ''; \

Dockerfile--altlinux_11.tmpl

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,12 @@ FROM base2_with_python-${PYTHON_VERSION} as final
7676
RUN adduser test -G wheel
7777

7878
# It enables execution of "sudo service ssh start" without password
79-
RUN sh -c "echo \"WHEEL_USERS ALL=(ALL:ALL) NOPASSWD: ALL\"" >> /etc/sudoers
79+
RUN echo "WHEEL_USERS ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers
8080

81-
ADD --chown=test:test . /pg/testgres
82-
WORKDIR /pg/testgres
81+
ADD --chown=test:test . /home/test/testgres
82+
WORKDIR /home/test/testgres
83+
RUN mkdir /home/test/testgres/logs
84+
RUN chown -R test:test /home/test/testgres/logs
8385

8486
ENV LANG=C.UTF-8
8587

@@ -96,7 +98,10 @@ ENTRYPOINT sh -c " \
9698
set -eux; \
9799
echo HELLO FROM ENTRYPOINT; \
98100
echo HOME DIR IS [`realpath ~/`]; \
101+
ls -la .; \
99102
sudo /usr/sbin/sshd; \
103+
sudo chmod 777 /home/test/testgres/logs; \
104+
ls -la . | grep logs; \
100105
ssh-keyscan -H localhost >> ~/.ssh/known_hosts; \
101106
ssh-keyscan -H 127.0.0.1 >> ~/.ssh/known_hosts; \
102107
ssh-keygen -t rsa -f ~/.ssh/id_rsa -q -N ''; \

Dockerfile--std-all.tmpl

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,24 @@ RUN apk add --no-cache sudo
2424
ENV LANG=C.UTF-8
2525

2626
RUN addgroup -S sudo
27-
RUN adduser postgres sudo
27+
RUN adduser -D test
28+
RUN addgroup test sudo
2829

2930
EXPOSE 22
3031
RUN ssh-keygen -A
3132

32-
ADD --chown=postgres:postgres . /pg/testgres
33-
WORKDIR /pg/testgres
33+
ADD --chown=test:test . /home/test/testgres
34+
WORKDIR /home/test/testgres
35+
RUN mkdir /home/test/testgres/logs
36+
RUN chown -R test:test /home/test/testgres/logs
3437

3538
# It allows to use sudo without password
36-
RUN sh -c "echo \"postgres ALL=(ALL:ALL) NOPASSWD:ALL\"">>/etc/sudoers
39+
RUN echo "test ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers
3740

3841
# THIS CMD IS NEEDED TO CONNECT THROUGH SSH WITHOUT PASSWORD
39-
RUN sh -c "echo "postgres:*" | chpasswd -e"
42+
RUN echo "test:*" | chpasswd -e
4043

41-
USER postgres
44+
USER test
4245

4346
# THIS CMD IS NEEDED TO CONNECT THROUGH SSH WITHOUT PASSWORD
4447
RUN chmod 700 ~/
@@ -52,11 +55,14 @@ ENTRYPOINT sh -c " \
5255
set -eux; \
5356
echo HELLO FROM ENTRYPOINT; \
5457
echo HOME DIR IS [`realpath ~/`]; \
58+
ls -la .; \
5559
ssh-keygen -t rsa -f ~/.ssh/id_rsa -q -N ''; \
5660
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys; \
5761
chmod 600 ~/.ssh/authorized_keys; \
5862
ls -la ~/.ssh/; \
5963
sudo /usr/sbin/sshd; \
64+
sudo chmod 777 /home/test/testgres/logs; \
65+
ls -la . | grep logs; \
6066
ssh-keyscan -H localhost >> ~/.ssh/known_hosts; \
6167
ssh-keyscan -H 127.0.0.1 >> ~/.ssh/known_hosts; \
6268
TEST_FILTER=\"\" bash run_tests.sh;"

Dockerfile--std.tmpl

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,28 @@ FROM base2_with_python-${PYTHON_VERSION} as final
1414

1515
RUN apk add --no-cache git
1616

17+
RUN apk add --no-cache sudo
18+
1719
ENV LANG=C.UTF-8
1820

19-
ADD --chown=postgres:postgres . /pg/testgres
20-
WORKDIR /pg/testgres
21+
RUN addgroup -S sudo
22+
RUN adduser -D test
23+
RUN addgroup test sudo
24+
25+
ADD --chown=test:test . /home/test/testgres
26+
WORKDIR /home/test/testgres
27+
RUN mkdir /home/test/testgres/logs
28+
RUN chown -R test:test /home/test/testgres/logs
29+
30+
# It allows to use sudo without password
31+
RUN echo "test ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers
2132

22-
USER postgres
23-
ENTRYPOINT bash run_tests.sh
33+
USER test
34+
ENTRYPOINT sh -c " \
35+
set -eux; \
36+
echo HELLO FROM ENTRYPOINT; \
37+
echo HOME DIR IS [`realpath ~/`]; \
38+
ls -la .; \
39+
sudo chmod 777 /home/test/testgres/logs; \
40+
ls -la . | grep logs; \
41+
bash run_tests.sh;"

Dockerfile--std2-all.tmpl

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,24 +71,27 @@ RUN apk add --no-cache sudo
7171
ENV LANG=C.UTF-8
7272

7373
RUN addgroup -S sudo
74-
RUN adduser postgres sudo
74+
RUN adduser -D test
75+
RUN addgroup test sudo
7576

7677
EXPOSE 22
7778
RUN ssh-keygen -A
7879

7980
# It allows to use sudo without password
80-
RUN sh -c "echo \"postgres ALL=(ALL:ALL) NOPASSWD:ALL\"">>/etc/sudoers
81+
RUN echo "test ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers
8182

8283
# THIS CMD IS NEEDED TO CONNECT THROUGH SSH WITHOUT PASSWORD
83-
RUN sh -c "echo "postgres:*" | chpasswd -e"
84+
RUN echo "test:*" | chpasswd -e
8485

85-
USER postgres
86+
USER test
8687

8788
RUN curl https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
8889
RUN ~/.pyenv/bin/pyenv install ${PYTHON_VERSION}
8990

90-
ADD --chown=postgres:postgres . /pg/testgres
91-
WORKDIR /pg/testgres
91+
ADD --chown=test:test . /home/test/testgres
92+
WORKDIR /home/test/testgres
93+
RUN mkdir /home/test/testgres/logs
94+
RUN chown -R test:test /home/test/testgres/logs
9295

9396
# THIS CMD IS NEEDED TO CONNECT THROUGH SSH WITHOUT PASSWORD
9497
RUN chmod 700 ~/
@@ -99,11 +102,14 @@ ENTRYPOINT sh -c " \
99102
set -eux; \
100103
echo HELLO FROM ENTRYPOINT; \
101104
echo HOME DIR IS [`realpath ~/`]; \
105+
ls -la .; \
102106
ssh-keygen -t rsa -f ~/.ssh/id_rsa -q -N ''; \
103107
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys; \
104108
chmod 600 ~/.ssh/authorized_keys; \
105109
ls -la ~/.ssh/; \
106110
sudo /usr/sbin/sshd; \
111+
sudo chmod 777 /home/test/testgres/logs; \
112+
ls -la . | grep logs; \
107113
ssh-keyscan -H localhost >> ~/.ssh/known_hosts; \
108114
ssh-keyscan -H 127.0.0.1 >> ~/.ssh/known_hosts; \
109115
export PATH=\"~/.pyenv/bin:$PATH\"; \

Dockerfile--ubuntu_24_04.tmpl

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,10 @@ RUN curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail http
2626
RUN apt update
2727
RUN apt install -y postgresql-${PG_VERSION}
2828

29-
# RUN apt install -y mc
30-
31-
# [2025-02-26] It adds the user 'postgres' in the group 'sudo'
32-
# [2025-02-27] It is not required.
33-
# RUN adduser postgres sudo
34-
3529
EXPOSE 22
3630

3731
RUN ssh-keygen -A
3832

39-
# It enables execution of "sudo service ssh start" without password
40-
RUN sh -c "echo postgres ALL=NOPASSWD:/usr/sbin/service ssh start" >> /etc/sudoers
41-
4233
# --------------------------------------------- base2_with_python-3
4334
FROM base1 as base2_with_python-3
4435
RUN apt install -y python3 python3-dev python3-venv libpq-dev build-essential
@@ -49,12 +40,23 @@ FROM base2_with_python-${PYTHON_VERSION} as final
4940

5041
RUN apt install -y git
5142

52-
ADD --chown=postgres:postgres . /pg/testgres
53-
WORKDIR /pg/testgres
43+
RUN adduser test
44+
RUN chown postgres:postgres /var/run/postgresql
45+
RUN chmod 775 /var/run/postgresql
46+
RUN usermod -aG postgres test
47+
48+
# It enables execution of "sudo service ssh start" without password
49+
#RUN echo "test ALL=NOPASSWD:/usr/sbin/service ssh start" >> /etc/sudoers
50+
RUN echo "test ALL=NOPASSWD:ALL" >> /etc/sudoers
51+
52+
ADD --chown=test:test . /home/test/testgres
53+
WORKDIR /home/test/testgres
54+
RUN mkdir /home/test/testgres/logs
55+
RUN chown -R test:test /home/test/testgres/logs
5456

5557
ENV LANG=C.UTF-8
5658

57-
USER postgres
59+
USER test
5860

5961
RUN chmod 700 ~/
6062
RUN mkdir -p ~/.ssh
@@ -63,8 +65,11 @@ ENTRYPOINT sh -c " \
6365
#set -eux; \
6466
echo HELLO FROM ENTRYPOINT; \
6567
echo HOME DIR IS [`realpath ~/`]; \
68+
ls -la .; \
6669
service ssh enable; \
6770
sudo service ssh start; \
71+
sudo chmod 777 /home/test/testgres/logs; \
72+
ls -la . | grep logs; \
6873
ssh-keyscan -H localhost >> ~/.ssh/known_hosts; \
6974
ssh-keyscan -H 127.0.0.1 >> ~/.ssh/known_hosts; \
7075
ssh-keygen -t rsa -f ~/.ssh/id_rsa -q -N ''; \

0 commit comments

Comments
 (0)