Skip to content
Snippets Groups Projects
Commit 207d2f02 authored by Zsombor Welker's avatar Zsombor Welker
Browse files

Add tests to workflow

parent 47511f10
No related branches found
No related tags found
No related merge requests found
name: Build Packages
on: [push]
jobs:
Debian:
runs-on: ubuntu-latest
container:
image: debian:latest
steps:
- name: Install fpm
run: |
apt-get update
apt-get install -y ruby ruby-dev rubygems build-essential python3-simplejson python3-pkg-resources python3-setuptools
gem install fpm
- name: Check out repository code
uses: actions/checkout@v3
- name: Build package
run: fpm -s python -t deb --python-bin=python3 --deb-systemd systemd-resolved-docker.service setup.py
- name: Save artifact
uses: actions/upload-artifact@v3
with:
name: Debian package
path: |
*.deb
Fedora:
runs-on: ubuntu-latest
container:
image: fedora:latest
steps:
- name: Install tito
run: dnf install -y tito python3-devel
- name: Check out repository code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: List contents
run: git config --global --add safe.directory $(pwd)
- name: Build package
run: tito build --rpm --offline --test
- name: Save artifacts
uses: actions/upload-artifact@v3
with:
name: RPM package
path: |
/tmp/tito/noarch/*.rpm
\ No newline at end of file
name: Build Packages
on: [ push ]
jobs:
build-deb:
name: Build DEB package
runs-on: ubuntu-22.04
steps:
- name: Install fpm
run: |
sudo apt-get update
sudo apt-get install -y ruby ruby-dev rubygems build-essential python3-simplejson python3-pkg-resources python3-setuptools
sudo gem install fpm
- name: Check out repository code
uses: actions/checkout@v3
- name: Build package
run: >
fpm --input-type python \
--output-type deb \
--python-bin=python3 \
--deb-systemd debian/systemd-resolved-docker.service \
--no-auto-depends \
--depends python3-docker \
--depends python3-dnslib \
--depends python3-dbus \
--depends python3-pyroute2 \
--depends python3-systemd \
--depends systemd \
setup.py
- name: Save artifact
uses: actions/upload-artifact@v3
with:
name: DEB package
path: |
*.deb
build-rpm:
name: Build RPM package
runs-on: ubuntu-22.04
container:
image: fedora:latest
steps:
- name: Install tito
run: dnf install -y tito python3-devel
- name: Check out repository code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: List contents
run: git config --global --add safe.directory $(pwd)
- name: Build package
run: tito build --rpm --offline --test
- name: Save artifacts
uses: actions/upload-artifact@v3
with:
name: RPM package
path: |
/tmp/tito/noarch/*.rpm
tests:
name: Run tests
runs-on: ubuntu-22.04
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Install packages
run: |
sudo apt-get update
sudo apt-get install -y python3 python3-docker python3-dnslib python3-dbus python3-pyroute2 python3-systemd
- name: Run tests
run: sudo python3 -m unittest
test-deb:
name: Test DEB package
runs-on: ubuntu-22.04
needs:
- build-deb
steps:
- name: Download DEB package
uses: actions/download-artifact@master
with:
name: DEB package
path: /tmp
- run: ls -lash /tmp
- name: Install package
run: sudo apt install /tmp/python-systemd-resolved-docker_*.deb
- name: Start service
run: sudo systemctl start systemd-resolved-docker
- name: Start continaer
run: docker run --detach --interactive --hostname test-container alpine
- name: resolvectl status
run: resolvectl status
- name: Test Query
run: resolvectl query test-container.docker
/dist
*.egg-info
__pycache__
_trial_temp
[Unit]
Description=systemd-resolved and docker DNS integration
Requires=docker.service systemd-resolved.service
After=docker.service systemd-resolved.service
BindsTo=docker.service systemd-resolved.service
[Service]
Type=notify
Environment=PYTHONUNBUFFERED=1
ExecStart=/usr/local/bin/systemd-resolved-docker
Restart=on-failure
[Install]
WantedBy=multi-user.target
......@@ -61,11 +61,12 @@ def find_default_docker_bridge_gateway(cli):
def create_dummy_interface(interface, ip_addresses):
with NDB(log='on') as ndb:
nbd_if = ndb.interfaces.create(ifname=interface, kind="dummy").set(state="up")
nbd_if = ndb.interfaces.create(ifname=interface, kind="dummy")
for ip_address in ip_addresses:
nbd_if = nbd_if.add_ip("%s/%s" % (
ip_address.ip.exploded, "32" if isinstance(ip_address.ip, ipaddress.IPv4Address) else "128"))
nbd_if.set('state', 'up')
nbd_if.commit()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment