From 11d6cbbac3e954727fff4fb8a28ac39d78ef2d1a Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Thu, 17 Jul 2025 10:22:56 +0200 Subject: [PATCH 01/18] Correct event name in Github workflow --- .github/workflows/testing-farm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index c0d98d3..e45c1cd 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -3,7 +3,7 @@ name: Run tests on Testing Farm on: push: branches: [ master ] - pull_request_trigger: + pull_request_target: types: [opened, synchronize, reopened] jobs: From 5c72842d63efdd59f8bbcdf61500e92e488e486d Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Thu, 17 Jul 2025 10:33:33 +0200 Subject: [PATCH 02/18] Add dummy file to test fork --- readme.dummy | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 readme.dummy diff --git a/readme.dummy b/readme.dummy new file mode 100644 index 0000000..e69de29 From 1cd72fa457ccf2bad5a7f9f1e895aa8cc0861436 Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Tue, 2 Sep 2025 09:14:52 +0200 Subject: [PATCH 03/18] Add with ref to checkout action --- .github/workflows/testing-farm.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index e45c1cd..b41a074 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -18,6 +18,8 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 + with: + ref: "refs/pull/${{ github.event.issue.number }}/head" - name: Test init on Fedora VM uses: sclorg/testing-farm-as-github-action@v4 @@ -40,6 +42,8 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 + with: + ref: "refs/pull/${{ github.event.issue.number }}/head" - name: Test upgrade on Fedora VM uses: sclorg/testing-farm-as-github-action@v4 @@ -51,4 +55,3 @@ jobs: pull_request_status_name: "Fedora upgrade test" update_pull_request_status: "true" create_github_summary: "true" - From 9fd5d38d6f0205250249fde8166fc8cc31762ab8 Mon Sep 17 00:00:00 2001 From: ndavidova Date: Tue, 2 Sep 2025 09:26:23 +0200 Subject: [PATCH 04/18] Container tests (#5) --- .github/workflows/testing-farm.yaml | 51 ++++++++++++- tmt/plans/container-fedora-init.fmf | 12 +++ tmt/plans/container-fedora-upgrade.fmf | 12 +++ tmt/plans/fedora-init.fmf | 2 +- tmt/tests/container/sanity/init/init.sh | 10 ++- tmt/tests/container/sanity/init/main.fmf | 6 +- tmt/tests/container/sanity/upgrade/main.fmf | 19 +++++ tmt/tests/container/sanity/upgrade/upgrade.sh | 73 +++++++++++++++++++ 8 files changed, 176 insertions(+), 9 deletions(-) create mode 100644 tmt/plans/container-fedora-init.fmf create mode 100644 tmt/plans/container-fedora-upgrade.fmf create mode 100644 tmt/tests/container/sanity/upgrade/main.fmf create mode 100755 tmt/tests/container/sanity/upgrade/upgrade.sh diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index e45c1cd..fd4a16c 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -2,7 +2,7 @@ name: Run tests on Testing Farm on: push: - branches: [ master ] + branches: [ master, container-tests ] pull_request_target: types: [opened, synchronize, reopened] @@ -20,7 +20,7 @@ jobs: uses: actions/checkout@v4 - name: Test init on Fedora VM - uses: sclorg/testing-farm-as-github-action@v4 + uses: sclorg/testing-farm-as-github-action@main with: api_key: ${{ secrets.TESTING_FARM_API_TOKEN }} compose: Fedora-Rawhide @@ -42,7 +42,7 @@ jobs: uses: actions/checkout@v4 - name: Test upgrade on Fedora VM - uses: sclorg/testing-farm-as-github-action@v4 + uses: sclorg/testing-farm-as-github-action@main with: api_key: ${{ secrets.TESTING_FARM_API_TOKEN }} compose: Fedora-Rawhide @@ -51,4 +51,49 @@ jobs: pull_request_status_name: "Fedora upgrade test" update_pull_request_status: "true" create_github_summary: "true" + container-test-init: + runs-on: ubuntu-latest + + permissions: + contents: read + pull-requests: write + statuses: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Test init on Fedora container + uses: sclorg/testing-farm-as-github-action@main + with: + api_key: ${{ secrets.TESTING_FARM_API_TOKEN }} + compose: null + tmt_path: "tmt" + tmt_plan_regex: "container-fedora-init" + pull_request_status_name: "Fedora container init test" + update_pull_request_status: "true" + create_github_summary: "true" + container-test-upgrade: + runs-on: ubuntu-latest + + permissions: + contents: read + pull-requests: write + statuses: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Test upgrade on Fedora container + uses: sclorg/testing-farm-as-github-action@main + with: + api_key: ${{ secrets.TESTING_FARM_API_TOKEN }} + compose: null + tmt_path: "tmt" + tmt_plan_regex: "container-fedora-upgrade" + pull_request_status_name: "Fedora container upgrade test" + update_pull_request_status: "true" + create_github_summary: "true" + diff --git a/tmt/plans/container-fedora-init.fmf b/tmt/plans/container-fedora-init.fmf new file mode 100644 index 0000000..1b6ac65 --- /dev/null +++ b/tmt/plans/container-fedora-init.fmf @@ -0,0 +1,12 @@ +name: /plans/fedora-init-container +summary: Run init test in a fedora container environment +provision: + how: container + image: fedora:latest +discover: + how: fmf + filter: tag:container-init-fedora +execute: + how: tmt + + diff --git a/tmt/plans/container-fedora-upgrade.fmf b/tmt/plans/container-fedora-upgrade.fmf new file mode 100644 index 0000000..e4553e6 --- /dev/null +++ b/tmt/plans/container-fedora-upgrade.fmf @@ -0,0 +1,12 @@ +name: /plans/fedora-upgrade-container +summary: Run upgrade test in a fedora container environment +provision: + how: container + image: fedora +discover: + how: fmf + filter: tag:fedora-upgrade-container +execute: + how: tmt + + diff --git a/tmt/plans/fedora-init.fmf b/tmt/plans/fedora-init.fmf index e387013..e2d2225 100644 --- a/tmt/plans/fedora-init.fmf +++ b/tmt/plans/fedora-init.fmf @@ -1,4 +1,4 @@ -name: /plans/fedora +name: /plans/fedora-init summary: Run tests in a fedora virtual machine environment discover: how: fmf diff --git a/tmt/tests/container/sanity/init/init.sh b/tmt/tests/container/sanity/init/init.sh index afef6b9..86ac766 100755 --- a/tmt/tests/container/sanity/init/init.sh +++ b/tmt/tests/container/sanity/init/init.sh @@ -5,6 +5,9 @@ cd repo git fetch origin "$TESTING_FARM_GIT_REF" git checkout FETCH_HEAD +grep -q systemd /proc/1/comm +echo "Return value CONTAINER: $?" + # setup autoreconf -vfi ./configure --prefix=/usr @@ -13,10 +16,11 @@ make # initialization ./bin/postgresql-setup --init -# start postgresql +# start postgresql and check if it's running PGDATA=/var/lib/pgsql/data LOGFILE=/var/lib/pgsql/logfile +su - postgres -c " /usr/bin/pg_ctl -D $PGDATA -l $LOGFILE start +pg_ctl -D $PGDATA status && echo \"PostgreSQL is running\" || { echo \"PostgreSQL is NOT running\"; exit 1; } +" -# check if it is running -pg_ctl -D $PGDATA status && echo "PostgreSQL is running" || { echo "PostgreSQL is NOT running"; exit 1; } diff --git a/tmt/tests/container/sanity/init/main.fmf b/tmt/tests/container/sanity/init/main.fmf index 4f63a78..df0390a 100644 --- a/tmt/tests/container/sanity/init/main.fmf +++ b/tmt/tests/container/sanity/init/main.fmf @@ -1,4 +1,4 @@ -summary: Check whether the machine is a container +summary: Postgresql-setup init test in a fedora rawhide container require: - make - m4 @@ -11,7 +11,9 @@ require: - automake - autoconf-archive - git +test: ./init.sh framework: shell +duration: 10m +tag: container-init-fedora contact: ndavidov@redhat.com -test: ./init.sh diff --git a/tmt/tests/container/sanity/upgrade/main.fmf b/tmt/tests/container/sanity/upgrade/main.fmf new file mode 100644 index 0000000..34c1d4c --- /dev/null +++ b/tmt/tests/container/sanity/upgrade/main.fmf @@ -0,0 +1,19 @@ +summary: Postgresql-setup upgrade test in a fedora rawhide container +require: + - make + - m4 + - docbook-utils + - help2man + - elinks + - postgresql-server + - coreutils + - autoconf + - automake + - autoconf-archive + - git +test: ./upgrade.sh +framework: shell +duration: 10m +tag: fedora-upgrade-container +contact: ndavidov@redhat.com + diff --git a/tmt/tests/container/sanity/upgrade/upgrade.sh b/tmt/tests/container/sanity/upgrade/upgrade.sh new file mode 100755 index 0000000..29c1e9d --- /dev/null +++ b/tmt/tests/container/sanity/upgrade/upgrade.sh @@ -0,0 +1,73 @@ +#!/bin/bash +# prep +git clone "$TESTING_FARM_GIT_URL" repo +cd repo +git fetch origin "$TESTING_FARM_GIT_REF" +git checkout FETCH_HEAD + +echo "Fedora release:" +cat /etc/fedora-release + +# install postgresql16 +dnf -y install postgresql16-server + +# setup +autoreconf -vfi +./configure --prefix=/usr +make + +# initialization +./bin/postgresql-setup --init + +# start postgresql and check if it's running +PGDATA=/var/lib/pgsql/data +LOGFILE=/var/lib/pgsql/logfile +su - postgres -c " +/usr/bin/pg_ctl -D $PGDATA -l $LOGFILE start +pg_ctl -D $PGDATA status && echo \"PostgreSQL is running\" || { echo \"PostgreSQL is NOT running\"; exit 1; } +" + +# insert data +su - postgres -c " +echo \"User switched\"; + +createdb testdb; +psql -U postgres -d testdb -c \"create table users (id serial primary key, name text)\"; +psql -U postgres -d testdb -c \"insert into users (name) values ('Alice'), ('Bob'), ('Celine')\" +" +su - postgres -c ' +psql -U postgres -d testdb -c "select * from users" +' > expected.txt + +echo "Expected:" +cat expected.txt + +# uninstall postgresql +dnf -y remove postgresql-server postgresql-private-libs postgresql libicu + +# install postgresql17 +dnf -y install postgresql17-upgrade + +# run --upgrade +./bin/postgresql-setup --upgrade + +# start postgresql and check if it's running +su - postgres -c " +/usr/bin/pg_ctl -D $PGDATA -l $LOGFILE start +pg_ctl -D $PGDATA status && echo \"PostgreSQL is running\" || { echo \"PostgreSQL is NOT running\"; exit 1; } +" + +su - postgres -c ' +psql -U postgres -d testdb -c "select * from users" +' > actual.txt + +echo "Actual:" +cat actual.txt + +diff -q expected.txt actual.txt && echo "Actual and expected outputs match" || { echo "Actual and expected outputs differ"; exit 1; } + + + + + + From 6633ec603d32e411553c22c13f747376fca968c2 Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Tue, 2 Sep 2025 09:53:12 +0200 Subject: [PATCH 05/18] Use ref according to github docs --- .github/workflows/testing-farm.yaml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index d6fce06..8628f7a 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -19,7 +19,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 with: - ref: "refs/pull/${{ github.event.issue.number }}/head" + ref: ${{ github.event.pull_request.head.sha }} - name: Test init on Fedora VM uses: sclorg/testing-farm-as-github-action@main @@ -31,7 +31,6 @@ jobs: pull_request_status_name: "Fedora init test" update_pull_request_status: "true" create_github_summary: "true" - variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }}" test-upgrade: runs-on: ubuntu-latest @@ -44,7 +43,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 with: - ref: "refs/pull/${{ github.event.issue.number }}/head" + ref: ${{ github.event.pull_request.head.sha }} - name: Test upgrade on Fedora VM uses: sclorg/testing-farm-as-github-action@main @@ -56,7 +55,6 @@ jobs: pull_request_status_name: "Fedora upgrade test" update_pull_request_status: "true" create_github_summary: "true" - variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }}" container-test-init: runs-on: ubuntu-latest @@ -69,7 +67,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 with: - ref: "refs/pull/${{ github.event.issue.number }}/head" + ref: ${{ github.event.pull_request.head.sha }} - name: Test init on Fedora container uses: sclorg/testing-farm-as-github-action@main @@ -81,7 +79,6 @@ jobs: pull_request_status_name: "Fedora container init test" update_pull_request_status: "true" create_github_summary: "true" - variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }}" container-test-upgrade: runs-on: ubuntu-latest @@ -94,7 +91,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 with: - ref: "refs/pull/${{ github.event.issue.number }}/head" + ref: ${{ github.event.pull_request.head.sha }} - name: Test upgrade on Fedora container uses: sclorg/testing-farm-as-github-action@main @@ -106,6 +103,5 @@ jobs: pull_request_status_name: "Fedora container upgrade test" update_pull_request_status: "true" create_github_summary: "true" - variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }}" From 02590e6d9dcbb591bc4a5660ca0d5b5f1d9b6929 Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Tue, 2 Sep 2025 10:34:37 +0200 Subject: [PATCH 06/18] Add debug refs --- .github/workflows/testing-farm.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index 8628f7a..f451fff 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -20,7 +20,6 @@ jobs: uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - - name: Test init on Fedora VM uses: sclorg/testing-farm-as-github-action@main with: @@ -94,6 +93,12 @@ jobs: ref: ${{ github.event.pull_request.head.sha }} - name: Test upgrade on Fedora container + run: | + echo "event_name=${{ github.event_name }}" + echo "base=${{ github.event.pull_request.base.sha }}" + echo "head=${{ github.event.pull_request.head.sha }}" + echo "ref=${{ github.ref }}" + echo "sha=${{ github.sha }}" uses: sclorg/testing-farm-as-github-action@main with: api_key: ${{ secrets.TESTING_FARM_API_TOKEN }} From 1473d32809b25d816c48fac5686ea40c5fea436d Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Tue, 2 Sep 2025 10:35:42 +0200 Subject: [PATCH 07/18] Fix space in debug refs --- .github/workflows/testing-farm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index f451fff..7b300cd 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -93,7 +93,7 @@ jobs: ref: ${{ github.event.pull_request.head.sha }} - name: Test upgrade on Fedora container - run: | + run: | echo "event_name=${{ github.event_name }}" echo "base=${{ github.event.pull_request.base.sha }}" echo "head=${{ github.event.pull_request.head.sha }}" From 0ba5d20f682b71c17902e3344ab8fdad44c4d96a Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Tue, 2 Sep 2025 10:38:05 +0200 Subject: [PATCH 08/18] Add debug refs name --- .github/workflows/testing-farm.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index 7b300cd..b45e5fc 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -91,14 +91,15 @@ jobs: uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - - - name: Test upgrade on Fedora container + - name: Debug refs run: | echo "event_name=${{ github.event_name }}" echo "base=${{ github.event.pull_request.base.sha }}" echo "head=${{ github.event.pull_request.head.sha }}" echo "ref=${{ github.ref }}" echo "sha=${{ github.sha }}" + + - name: Test upgrade on Fedora container uses: sclorg/testing-farm-as-github-action@main with: api_key: ${{ secrets.TESTING_FARM_API_TOKEN }} From 8f1e651e100ca9097b35165de8e0d6ac4c3f3792 Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Tue, 2 Sep 2025 10:50:00 +0200 Subject: [PATCH 09/18] Add variables --- .github/workflows/testing-farm.yaml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index b45e5fc..c19828b 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -30,6 +30,7 @@ jobs: pull_request_status_name: "Fedora init test" update_pull_request_status: "true" create_github_summary: "true" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};" test-upgrade: runs-on: ubuntu-latest @@ -54,6 +55,7 @@ jobs: pull_request_status_name: "Fedora upgrade test" update_pull_request_status: "true" create_github_summary: "true" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};" container-test-init: runs-on: ubuntu-latest @@ -78,6 +80,7 @@ jobs: pull_request_status_name: "Fedora container init test" update_pull_request_status: "true" create_github_summary: "true" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};" container-test-upgrade: runs-on: ubuntu-latest @@ -91,13 +94,6 @@ jobs: uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - - name: Debug refs - run: | - echo "event_name=${{ github.event_name }}" - echo "base=${{ github.event.pull_request.base.sha }}" - echo "head=${{ github.event.pull_request.head.sha }}" - echo "ref=${{ github.ref }}" - echo "sha=${{ github.sha }}" - name: Test upgrade on Fedora container uses: sclorg/testing-farm-as-github-action@main @@ -109,5 +105,6 @@ jobs: pull_request_status_name: "Fedora container upgrade test" update_pull_request_status: "true" create_github_summary: "true" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }}; From b6df16b7945d98501d5870fd97dd84a7cfb7aea8 Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Tue, 2 Sep 2025 10:51:41 +0200 Subject: [PATCH 10/18] Add quotation marks to variables --- .github/workflows/testing-farm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index c19828b..87fe345 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -105,6 +105,6 @@ jobs: pull_request_status_name: "Fedora container upgrade test" update_pull_request_status: "true" create_github_summary: "true" - variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }}; + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};" From 26ccdb0440422af0d07ee6fc7ae396d5b172d124 Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Tue, 2 Sep 2025 10:58:42 +0200 Subject: [PATCH 11/18] Change event to pull_request.head.sha --- .github/workflows/testing-farm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index 87fe345..543fbdc 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -105,6 +105,6 @@ jobs: pull_request_status_name: "Fedora container upgrade test" update_pull_request_status: "true" create_github_summary: "true" - variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.pull_request.head.sha }};" From e49a8c5b999be587a5485d56a59a43708a10040b Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Tue, 2 Sep 2025 12:15:16 +0200 Subject: [PATCH 12/18] Use environment variables in tests --- tmt/tests/container/sanity/init/init.sh | 4 ++-- tmt/tests/container/sanity/upgrade/upgrade.sh | 4 ++-- tmt/tests/virtual/sanity/init/init.sh | 5 +++-- tmt/tests/virtual/sanity/upgrade/upgrade.sh | 4 ++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/tmt/tests/container/sanity/init/init.sh b/tmt/tests/container/sanity/init/init.sh index 86ac766..6bd4bac 100755 --- a/tmt/tests/container/sanity/init/init.sh +++ b/tmt/tests/container/sanity/init/init.sh @@ -1,8 +1,8 @@ #!/bin/bash # prep -git clone "$TESTING_FARM_GIT_URL" repo +git clone "$REPO_URL" repo cd repo -git fetch origin "$TESTING_FARM_GIT_REF" +git fetch origin "$PR_HEAD" git checkout FETCH_HEAD grep -q systemd /proc/1/comm diff --git a/tmt/tests/container/sanity/upgrade/upgrade.sh b/tmt/tests/container/sanity/upgrade/upgrade.sh index 29c1e9d..c8d0b76 100755 --- a/tmt/tests/container/sanity/upgrade/upgrade.sh +++ b/tmt/tests/container/sanity/upgrade/upgrade.sh @@ -1,8 +1,8 @@ #!/bin/bash # prep -git clone "$TESTING_FARM_GIT_URL" repo +git clone "$REPO_URL" repo cd repo -git fetch origin "$TESTING_FARM_GIT_REF" +git fetch origin "$PR_HEAD" git checkout FETCH_HEAD echo "Fedora release:" diff --git a/tmt/tests/virtual/sanity/init/init.sh b/tmt/tests/virtual/sanity/init/init.sh index 9cb1502..d629ce4 100755 --- a/tmt/tests/virtual/sanity/init/init.sh +++ b/tmt/tests/virtual/sanity/init/init.sh @@ -1,9 +1,10 @@ #!/bin/bash # prep -git clone "$TESTING_FARM_GIT_URL" repo +git clone "$REPO_URL" repo cd repo -git fetch origin "$TESTING_FARM_GIT_REF" +git fetch origin "$PR_HEAD" git checkout FETCH_HEAD +git log -1 --oneline # setup autoreconf -vfi diff --git a/tmt/tests/virtual/sanity/upgrade/upgrade.sh b/tmt/tests/virtual/sanity/upgrade/upgrade.sh index 9d3277b..0f93597 100755 --- a/tmt/tests/virtual/sanity/upgrade/upgrade.sh +++ b/tmt/tests/virtual/sanity/upgrade/upgrade.sh @@ -1,8 +1,8 @@ #!/bin/bash # prep -git clone "$TESTING_FARM_GIT_URL" repo +git clone "$REPO_URL" repo cd repo -git fetch origin "$TESTING_FARM_GIT_REF" +git fetch origin "$PR_HEAD" git checkout FETCH_HEAD echo "Fedora release:" cat /etc/fedora-release From ba53244ce197f80619242a2fe54d398e9e96ed21 Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Tue, 2 Sep 2025 12:15:58 +0200 Subject: [PATCH 13/18] Update variable name --- .github/workflows/testing-farm.yaml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index 543fbdc..aa1b782 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -28,9 +28,10 @@ jobs: tmt_path: "tmt" tmt_plan_regex: "fedora-init" pull_request_status_name: "Fedora init test" - update_pull_request_status: "true" create_github_summary: "true" - variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};" + update_pull_request_status: "true" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};PR_HEAD=${{ github.event.pull_request.head.sha }};" + test-upgrade: runs-on: ubuntu-latest @@ -55,7 +56,7 @@ jobs: pull_request_status_name: "Fedora upgrade test" update_pull_request_status: "true" create_github_summary: "true" - variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};PR_HEAD=${{ github.event.pull_request.head.sha }};" container-test-init: runs-on: ubuntu-latest @@ -80,7 +81,8 @@ jobs: pull_request_status_name: "Fedora container init test" update_pull_request_status: "true" create_github_summary: "true" - variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};PR_HEAD=${{ github.event.pull_request.head.sha }};" + container-test-upgrade: runs-on: ubuntu-latest @@ -105,6 +107,6 @@ jobs: pull_request_status_name: "Fedora container upgrade test" update_pull_request_status: "true" create_github_summary: "true" - variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.pull_request.head.sha }};" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};PR_HEAD=${{ github.event.pull_request.head.sha }};" From e5809cb8a30b1b80a34fea2794f7054416823ed6 Mon Sep 17 00:00:00 2001 From: ndavidova Date: Tue, 2 Sep 2025 09:26:23 +0200 Subject: [PATCH 14/18] Container tests (#5) --- .github/workflows/testing-farm.yaml | 52 ++++++++++++- tmt/plans/container-fedora-init.fmf | 12 +++ tmt/plans/container-fedora-upgrade.fmf | 12 +++ tmt/plans/fedora-init.fmf | 2 +- tmt/tests/container/sanity/init/init.sh | 10 ++- tmt/tests/container/sanity/init/main.fmf | 6 +- tmt/tests/container/sanity/upgrade/main.fmf | 19 +++++ tmt/tests/container/sanity/upgrade/upgrade.sh | 73 +++++++++++++++++++ 8 files changed, 177 insertions(+), 9 deletions(-) create mode 100644 tmt/plans/container-fedora-init.fmf create mode 100644 tmt/plans/container-fedora-upgrade.fmf create mode 100644 tmt/tests/container/sanity/upgrade/main.fmf create mode 100755 tmt/tests/container/sanity/upgrade/upgrade.sh diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index b41a074..701f34c 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -2,7 +2,7 @@ name: Run tests on Testing Farm on: push: - branches: [ master ] + branches: [ master, container-tests ] pull_request_target: types: [opened, synchronize, reopened] @@ -22,7 +22,7 @@ jobs: ref: "refs/pull/${{ github.event.issue.number }}/head" - name: Test init on Fedora VM - uses: sclorg/testing-farm-as-github-action@v4 + uses: sclorg/testing-farm-as-github-action@main with: api_key: ${{ secrets.TESTING_FARM_API_TOKEN }} compose: Fedora-Rawhide @@ -46,7 +46,7 @@ jobs: ref: "refs/pull/${{ github.event.issue.number }}/head" - name: Test upgrade on Fedora VM - uses: sclorg/testing-farm-as-github-action@v4 + uses: sclorg/testing-farm-as-github-action@main with: api_key: ${{ secrets.TESTING_FARM_API_TOKEN }} compose: Fedora-Rawhide @@ -55,3 +55,49 @@ jobs: pull_request_status_name: "Fedora upgrade test" update_pull_request_status: "true" create_github_summary: "true" + container-test-init: + runs-on: ubuntu-latest + + permissions: + contents: read + pull-requests: write + statuses: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Test init on Fedora container + uses: sclorg/testing-farm-as-github-action@main + with: + api_key: ${{ secrets.TESTING_FARM_API_TOKEN }} + compose: null + tmt_path: "tmt" + tmt_plan_regex: "container-fedora-init" + pull_request_status_name: "Fedora container init test" + update_pull_request_status: "true" + create_github_summary: "true" + container-test-upgrade: + runs-on: ubuntu-latest + + permissions: + contents: read + pull-requests: write + statuses: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Test upgrade on Fedora container + uses: sclorg/testing-farm-as-github-action@main + with: + api_key: ${{ secrets.TESTING_FARM_API_TOKEN }} + compose: null + tmt_path: "tmt" + tmt_plan_regex: "container-fedora-upgrade" + pull_request_status_name: "Fedora container upgrade test" + update_pull_request_status: "true" + create_github_summary: "true" + + diff --git a/tmt/plans/container-fedora-init.fmf b/tmt/plans/container-fedora-init.fmf new file mode 100644 index 0000000..1b6ac65 --- /dev/null +++ b/tmt/plans/container-fedora-init.fmf @@ -0,0 +1,12 @@ +name: /plans/fedora-init-container +summary: Run init test in a fedora container environment +provision: + how: container + image: fedora:latest +discover: + how: fmf + filter: tag:container-init-fedora +execute: + how: tmt + + diff --git a/tmt/plans/container-fedora-upgrade.fmf b/tmt/plans/container-fedora-upgrade.fmf new file mode 100644 index 0000000..e4553e6 --- /dev/null +++ b/tmt/plans/container-fedora-upgrade.fmf @@ -0,0 +1,12 @@ +name: /plans/fedora-upgrade-container +summary: Run upgrade test in a fedora container environment +provision: + how: container + image: fedora +discover: + how: fmf + filter: tag:fedora-upgrade-container +execute: + how: tmt + + diff --git a/tmt/plans/fedora-init.fmf b/tmt/plans/fedora-init.fmf index e387013..e2d2225 100644 --- a/tmt/plans/fedora-init.fmf +++ b/tmt/plans/fedora-init.fmf @@ -1,4 +1,4 @@ -name: /plans/fedora +name: /plans/fedora-init summary: Run tests in a fedora virtual machine environment discover: how: fmf diff --git a/tmt/tests/container/sanity/init/init.sh b/tmt/tests/container/sanity/init/init.sh index afef6b9..86ac766 100755 --- a/tmt/tests/container/sanity/init/init.sh +++ b/tmt/tests/container/sanity/init/init.sh @@ -5,6 +5,9 @@ cd repo git fetch origin "$TESTING_FARM_GIT_REF" git checkout FETCH_HEAD +grep -q systemd /proc/1/comm +echo "Return value CONTAINER: $?" + # setup autoreconf -vfi ./configure --prefix=/usr @@ -13,10 +16,11 @@ make # initialization ./bin/postgresql-setup --init -# start postgresql +# start postgresql and check if it's running PGDATA=/var/lib/pgsql/data LOGFILE=/var/lib/pgsql/logfile +su - postgres -c " /usr/bin/pg_ctl -D $PGDATA -l $LOGFILE start +pg_ctl -D $PGDATA status && echo \"PostgreSQL is running\" || { echo \"PostgreSQL is NOT running\"; exit 1; } +" -# check if it is running -pg_ctl -D $PGDATA status && echo "PostgreSQL is running" || { echo "PostgreSQL is NOT running"; exit 1; } diff --git a/tmt/tests/container/sanity/init/main.fmf b/tmt/tests/container/sanity/init/main.fmf index 4f63a78..df0390a 100644 --- a/tmt/tests/container/sanity/init/main.fmf +++ b/tmt/tests/container/sanity/init/main.fmf @@ -1,4 +1,4 @@ -summary: Check whether the machine is a container +summary: Postgresql-setup init test in a fedora rawhide container require: - make - m4 @@ -11,7 +11,9 @@ require: - automake - autoconf-archive - git +test: ./init.sh framework: shell +duration: 10m +tag: container-init-fedora contact: ndavidov@redhat.com -test: ./init.sh diff --git a/tmt/tests/container/sanity/upgrade/main.fmf b/tmt/tests/container/sanity/upgrade/main.fmf new file mode 100644 index 0000000..34c1d4c --- /dev/null +++ b/tmt/tests/container/sanity/upgrade/main.fmf @@ -0,0 +1,19 @@ +summary: Postgresql-setup upgrade test in a fedora rawhide container +require: + - make + - m4 + - docbook-utils + - help2man + - elinks + - postgresql-server + - coreutils + - autoconf + - automake + - autoconf-archive + - git +test: ./upgrade.sh +framework: shell +duration: 10m +tag: fedora-upgrade-container +contact: ndavidov@redhat.com + diff --git a/tmt/tests/container/sanity/upgrade/upgrade.sh b/tmt/tests/container/sanity/upgrade/upgrade.sh new file mode 100755 index 0000000..29c1e9d --- /dev/null +++ b/tmt/tests/container/sanity/upgrade/upgrade.sh @@ -0,0 +1,73 @@ +#!/bin/bash +# prep +git clone "$TESTING_FARM_GIT_URL" repo +cd repo +git fetch origin "$TESTING_FARM_GIT_REF" +git checkout FETCH_HEAD + +echo "Fedora release:" +cat /etc/fedora-release + +# install postgresql16 +dnf -y install postgresql16-server + +# setup +autoreconf -vfi +./configure --prefix=/usr +make + +# initialization +./bin/postgresql-setup --init + +# start postgresql and check if it's running +PGDATA=/var/lib/pgsql/data +LOGFILE=/var/lib/pgsql/logfile +su - postgres -c " +/usr/bin/pg_ctl -D $PGDATA -l $LOGFILE start +pg_ctl -D $PGDATA status && echo \"PostgreSQL is running\" || { echo \"PostgreSQL is NOT running\"; exit 1; } +" + +# insert data +su - postgres -c " +echo \"User switched\"; + +createdb testdb; +psql -U postgres -d testdb -c \"create table users (id serial primary key, name text)\"; +psql -U postgres -d testdb -c \"insert into users (name) values ('Alice'), ('Bob'), ('Celine')\" +" +su - postgres -c ' +psql -U postgres -d testdb -c "select * from users" +' > expected.txt + +echo "Expected:" +cat expected.txt + +# uninstall postgresql +dnf -y remove postgresql-server postgresql-private-libs postgresql libicu + +# install postgresql17 +dnf -y install postgresql17-upgrade + +# run --upgrade +./bin/postgresql-setup --upgrade + +# start postgresql and check if it's running +su - postgres -c " +/usr/bin/pg_ctl -D $PGDATA -l $LOGFILE start +pg_ctl -D $PGDATA status && echo \"PostgreSQL is running\" || { echo \"PostgreSQL is NOT running\"; exit 1; } +" + +su - postgres -c ' +psql -U postgres -d testdb -c "select * from users" +' > actual.txt + +echo "Actual:" +cat actual.txt + +diff -q expected.txt actual.txt && echo "Actual and expected outputs match" || { echo "Actual and expected outputs differ"; exit 1; } + + + + + + From dda5f7889b6ccb3804f92eced0a75778d87eb976 Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Tue, 2 Sep 2025 09:53:12 +0200 Subject: [PATCH 15/18] Use ref according to github docs --- .github/workflows/testing-farm.yaml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index 701f34c..a184cdc 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -19,8 +19,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 with: - ref: "refs/pull/${{ github.event.issue.number }}/head" - + ref: ${{ github.event.pull_request.head.sha }} - name: Test init on Fedora VM uses: sclorg/testing-farm-as-github-action@main with: @@ -31,6 +30,7 @@ jobs: pull_request_status_name: "Fedora init test" update_pull_request_status: "true" create_github_summary: "true" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};" test-upgrade: runs-on: ubuntu-latest @@ -43,7 +43,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 with: - ref: "refs/pull/${{ github.event.issue.number }}/head" + ref: ${{ github.event.pull_request.head.sha }} - name: Test upgrade on Fedora VM uses: sclorg/testing-farm-as-github-action@main @@ -55,6 +55,7 @@ jobs: pull_request_status_name: "Fedora upgrade test" update_pull_request_status: "true" create_github_summary: "true" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};" container-test-init: runs-on: ubuntu-latest @@ -66,6 +67,8 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} - name: Test init on Fedora container uses: sclorg/testing-farm-as-github-action@main @@ -77,6 +80,7 @@ jobs: pull_request_status_name: "Fedora container init test" update_pull_request_status: "true" create_github_summary: "true" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};" container-test-upgrade: runs-on: ubuntu-latest @@ -88,7 +92,9 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 - + with: + ref: ${{ github.event.pull_request.head.sha }} + - name: Test upgrade on Fedora container uses: sclorg/testing-farm-as-github-action@main with: @@ -99,5 +105,6 @@ jobs: pull_request_status_name: "Fedora container upgrade test" update_pull_request_status: "true" create_github_summary: "true" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.pull_request.head.sha }};" From a8ed26a860c9955d964ac5e64ebf80a18c8fe137 Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Tue, 2 Sep 2025 12:15:16 +0200 Subject: [PATCH 16/18] Use environment variables in tests --- .github/workflows/testing-farm.yaml | 12 +++++++----- tmt/tests/container/sanity/init/init.sh | 4 ++-- tmt/tests/container/sanity/upgrade/upgrade.sh | 4 ++-- tmt/tests/virtual/sanity/init/init.sh | 5 +++-- tmt/tests/virtual/sanity/upgrade/upgrade.sh | 4 ++-- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index a184cdc..172455f 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -28,9 +28,10 @@ jobs: tmt_path: "tmt" tmt_plan_regex: "fedora-init" pull_request_status_name: "Fedora init test" - update_pull_request_status: "true" create_github_summary: "true" - variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};" + update_pull_request_status: "true" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};PR_HEAD=${{ github.event.pull_request.head.sha }};" + test-upgrade: runs-on: ubuntu-latest @@ -55,7 +56,7 @@ jobs: pull_request_status_name: "Fedora upgrade test" update_pull_request_status: "true" create_github_summary: "true" - variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};PR_HEAD=${{ github.event.pull_request.head.sha }};" container-test-init: runs-on: ubuntu-latest @@ -80,7 +81,8 @@ jobs: pull_request_status_name: "Fedora container init test" update_pull_request_status: "true" create_github_summary: "true" - variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};PR_HEAD=${{ github.event.pull_request.head.sha }};" + container-test-upgrade: runs-on: ubuntu-latest @@ -105,6 +107,6 @@ jobs: pull_request_status_name: "Fedora container upgrade test" update_pull_request_status: "true" create_github_summary: "true" - variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.pull_request.head.sha }};" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};PR_HEAD=${{ github.event.pull_request.head.sha }};" diff --git a/tmt/tests/container/sanity/init/init.sh b/tmt/tests/container/sanity/init/init.sh index 86ac766..6bd4bac 100755 --- a/tmt/tests/container/sanity/init/init.sh +++ b/tmt/tests/container/sanity/init/init.sh @@ -1,8 +1,8 @@ #!/bin/bash # prep -git clone "$TESTING_FARM_GIT_URL" repo +git clone "$REPO_URL" repo cd repo -git fetch origin "$TESTING_FARM_GIT_REF" +git fetch origin "$PR_HEAD" git checkout FETCH_HEAD grep -q systemd /proc/1/comm diff --git a/tmt/tests/container/sanity/upgrade/upgrade.sh b/tmt/tests/container/sanity/upgrade/upgrade.sh index 29c1e9d..c8d0b76 100755 --- a/tmt/tests/container/sanity/upgrade/upgrade.sh +++ b/tmt/tests/container/sanity/upgrade/upgrade.sh @@ -1,8 +1,8 @@ #!/bin/bash # prep -git clone "$TESTING_FARM_GIT_URL" repo +git clone "$REPO_URL" repo cd repo -git fetch origin "$TESTING_FARM_GIT_REF" +git fetch origin "$PR_HEAD" git checkout FETCH_HEAD echo "Fedora release:" diff --git a/tmt/tests/virtual/sanity/init/init.sh b/tmt/tests/virtual/sanity/init/init.sh index 9cb1502..d629ce4 100755 --- a/tmt/tests/virtual/sanity/init/init.sh +++ b/tmt/tests/virtual/sanity/init/init.sh @@ -1,9 +1,10 @@ #!/bin/bash # prep -git clone "$TESTING_FARM_GIT_URL" repo +git clone "$REPO_URL" repo cd repo -git fetch origin "$TESTING_FARM_GIT_REF" +git fetch origin "$PR_HEAD" git checkout FETCH_HEAD +git log -1 --oneline # setup autoreconf -vfi diff --git a/tmt/tests/virtual/sanity/upgrade/upgrade.sh b/tmt/tests/virtual/sanity/upgrade/upgrade.sh index 9d3277b..0f93597 100755 --- a/tmt/tests/virtual/sanity/upgrade/upgrade.sh +++ b/tmt/tests/virtual/sanity/upgrade/upgrade.sh @@ -1,8 +1,8 @@ #!/bin/bash # prep -git clone "$TESTING_FARM_GIT_URL" repo +git clone "$REPO_URL" repo cd repo -git fetch origin "$TESTING_FARM_GIT_REF" +git fetch origin "$PR_HEAD" git checkout FETCH_HEAD echo "Fedora release:" cat /etc/fedora-release From f58f96bf956b0f25e11a0ac545411f48eb9a02cf Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Wed, 3 Sep 2025 10:22:09 +0200 Subject: [PATCH 17/18] Add permission checking before checkout --- .github/workflows/testing-farm.yaml | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index 172455f..dd82b70 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -16,6 +16,21 @@ jobs: statuses: write steps: + - name: Get User Permission + id: checkAccess + uses: actions-cool/check-user-permission@v2 + with: + require: write + username: ${{ github.triggering_actor }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Check User Permission + if: steps.checkAccess.outputs.require-result == 'false' + run: | + echo "${{ github.triggering_actor }} does not have permissions on this repo." + echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}" + echo "Job originally triggered by ${{ github.actor }}" + exit 1 - name: Checkout repository uses: actions/checkout@v4 with: @@ -41,6 +56,22 @@ jobs: statuses: write steps: + - name: Get User Permission + id: checkAccess + uses: actions-cool/check-user-permission@v2 + with: + require: write + username: ${{ github.triggering_actor }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Check User Permission + if: steps.checkAccess.outputs.require-result == 'false' + run: | + echo "${{ github.triggering_actor }} does not have permissions on this repo." + echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}" + echo "Job originally triggered by ${{ github.actor }}" + exit 1 + - name: Checkout repository uses: actions/checkout@v4 with: From 6a35901bcf4ff87a0987ccb283a22294aa957f14 Mon Sep 17 00:00:00 2001 From: Nikola Davidova Date: Wed, 3 Sep 2025 10:34:14 +0200 Subject: [PATCH 18/18] Add permission checking in container tests --- .github/workflows/testing-farm.yaml | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/.github/workflows/testing-farm.yaml b/.github/workflows/testing-farm.yaml index dd82b70..d6139f1 100644 --- a/.github/workflows/testing-farm.yaml +++ b/.github/workflows/testing-farm.yaml @@ -97,6 +97,23 @@ jobs: statuses: write steps: + - name: Get User Permission + id: checkAccess + uses: actions-cool/check-user-permission@v2 + with: + require: write + username: ${{ github.triggering_actor }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Check User Permission + if: steps.checkAccess.outputs.require-result == 'false' + run: | + echo "${{ github.triggering_actor }} does not have permissions on this repo." + echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}" + echo "Job originally triggered by ${{ github.actor }}" + exit 1 + - name: Checkout repository uses: actions/checkout@v4 with: @@ -123,6 +140,23 @@ jobs: statuses: write steps: + - name: Get User Permission + id: checkAccess + uses: actions-cool/check-user-permission@v2 + with: + require: write + username: ${{ github.triggering_actor }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Check User Permission + if: steps.checkAccess.outputs.require-result == 'false' + run: | + echo "${{ github.triggering_actor }} does not have permissions on this repo." + echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}" + echo "Job originally triggered by ${{ github.actor }}" + exit 1 + - name: Checkout repository uses: actions/checkout@v4 with: