I’ve tried this on a fresh 18.04 VM and it works:
sudo apt install ifupdown bridge-utils
/etc/network/interfaces
auto lo
iface lo inet loopback
iface enp0s3 inet manual
# Bridge setup
auto br0
iface br0 inet dhcp
bridge_ports enp0s3
Reboot and I see:
ip a
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
link/ether 08:00:27:76:da:6e brd ff:ff:ff:ff:ff:ff
inet6 fe80::a00:27ff:fe76:da6e/64 scope link
valid_lft forever preferred_lft forever
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 08:00:27:76:da:6e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.129/24 brd 192.168.1.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe76:da6e/64 scope link
valid_lft forever preferred_lft forever
I wouldn’t suggest mixing netplan and interfaces files though, stick with one or the other.