[pre-commit.ci] pre-commit autoupdate #184
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: integration test | |
on: | |
pull_request: | |
branches: | |
- "*" | |
push: | |
branches: | |
- master | |
jobs: | |
test-on-linux: | |
name: Py${{ matrix.python-version }} @ ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
# note: always use the -latest OS variants b/c if conditions | |
# match them as literals | |
os: [ubuntu-latest] | |
python-version: [3.11] | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Verify curl with Kerberos | |
run: | | |
make verify-curl-with-kerberos | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Build & start services | |
run: | | |
make build-services | |
make run-services | |
- name: Install & configure Kerberos client | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
KRB5_ADDR=`docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' krb5_kiwitcms_org` | |
sudo apt-get -y install krb5-user | |
sudo cp ./tests/krb5.conf /etc/ | |
sudo sed -i "s/localhost\./$KRB5_ADDR/" /etc/krb5.conf | |
# this directory is missing and krb5.conf wants to include it | |
sudo mkdir /etc/krb5.conf.d/ | |
WEB_ADDR=`docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web_kiwitcms_org` | |
sudo sh -c "echo '$WEB_ADDR web.kiwitcms.org' >> /etc/hosts" | |
- name: Obtain valid Kerberos ticket | |
run: | | |
echo changeme | kinit travis@KIWITCMS.ORG | |
klist | |
- name: Verify web login with Kerberos | |
run: | | |
make verify-web-login | |
klist | |
- name: Save docker logs | |
if: always() | |
run: | | |
docker-compose logs > docker-compose.log | |
- name: Upload logs | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: logs | |
if-no-files-found: warn | |
path: | | |
/tmp/curl.log | |
./docker-compose.log | |
- name: Collect & report coverage | |
run: | | |
# trigger coverage.py's atexit handler and save coverage data | |
docker exec -i web_kiwitcms_org /bin/bash -c "killall -TERM uwsgi" | |
# combine & copy out the results | |
docker exec -i web_kiwitcms_org /bin/bash -c "cd /coverage; coverage combine" | |
docker cp web_kiwitcms_org:/coverage/.coverage .coverage.container | |
# combining again will map to local sources paths | |
pip install coveralls | |
sed -i "s/data_file.*//" .coveragerc | |
coverage combine | |
COVERALLS_REPO_TOKEN=Oc0oWQC2KKHUbvZD6Ui7W2Ury7LsYu4ho coveralls |