Skip to content
Snippets Groups Projects
Verified Commit a102699f authored by Dylan Van Assche's avatar Dylan Van Assche
Browse files

test_upgrade_compat: initial CI

parent ef63115a
No related branches found
No related tags found
No related merge requests found
Pipeline #163523 failed
#!/usr/bin/env python3
# Copyright 2022 Dylan Van Assche
# SPDX-License-Identifier: GPL-3.0-or-later
import sys
import pytest
import pmb.helpers.logging
import pmb.parse.apkindex
import pmb.parse
@pytest.fixture
def args(request):
# Initialize args
sys.argv = ["pmbootstrap", "chroot"]
args = pmb.parse.arguments()
# Initialize logging
pmb.helpers.logging.init(args)
request.addfinalizer(pmb.helpers.logging.logfd.close)
return args
def test_latest_stable_to_edge(args):
"""
Verify if we can upgrade from the latest stable image to edge.
"""
POSTMARKETOS_BRANCH_EDGE = "master"
POSTMARKETOS_BRANCH_LATEST_STABLE = "v21.12"
ALPINE_BRANCH_EDGE = "edge"
ALPINE_BRANCH_LATEST_STABLE = "v3.15"
args.no_image = True
args.device = "pine64-pinephone"
args.user = "user"
args.install_base = True
args.install_recommends = True
args.full_disk_encryption = False
args.on_device_installer = False
args.password = "147147"
args.no_sshd = False
args.no_firewall = False
suffix = "rootfs_pine64-pinephone"
# Zap any existing chroots
pmb.chroot.zap(args, confirm=False)
# Switch to latest stable in chroot
if pmb.helpers.run.user(args, ["git", "checkout", POSTMARKETOS_BRANCH_LATEST_STABLE],
args.aports, "interactive", check=False):
raise RuntimeError("Failed to switch branch. Go to your pmaports and"
" fix what git complained about, then try again: "
f"{args.aports}")
pmb.helpers.other.init_cache()
# Verify that we're on stable
pmb.chroot.root(args, ["cat", "/etc/apk/repositories"],
suffix, auto_init=True)
# Install required programs in native chroot
pmb.chroot.apk.install(args, pmb.config.install_native_packages,
build=False)
# Install UI packages
pmb.install._install.create_device_rootfs(args, 2, 2)
# Switch to master in chroot
if pmb.helpers.run.user(args,
["git", "checkout", POSTMARKETOS_BRANCH_EDGE],
args.aports, "interactive", check=False):
raise RuntimeError("Failed to switch branch. Go to your pmaports and"
" fix what git complained about, then try again: "
f"{args.aports}")
pmb.chroot.root(args, ["sed", "-i", "-e",
"s/" + POSTMARKETOS_BRANCH_LATEST_STABLE + \
"/" + POSTMARKETOS_BRANCH_EDGE + "/g",
"/etc/apk/repositories"], suffix)
pmb.chroot.root(args, ["sed", "-i", "-e",
"s/" + ALPINE_BRANCH_LATEST_STABLE + \
"/" + ALPINE_BRANCH_EDGE + "/g",
"/etc/apk/repositories"], suffix)
pmb.helpers.other.init_cache()
# Verify that we're on master
pmb.chroot.root(args, ["cat", "/etc/apk/repositories"],
suffix, auto_init=False)
# Perform upgrade
pmb.chroot.root(args, ["apk", "upgrade", "-a"],
suffix, auto_init=False)
#!/usr/bin/env python3
# Copyright 2022 Dylan Van Assche
# SPDX-License-Identifier: GPL-3.0-or-later
import sys
import glob
import os
import pytest
import pmb.helpers.logging
import pmb.parse.apkindex
import pmb.parse
@pytest.fixture
def args(request):
# Initialize args
sys.argv = ["pmbootstrap", "chroot"]
args = pmb.parse.arguments()
# Initialize logging
pmb.helpers.logging.init(args)
request.addfinalizer(pmb.helpers.logging.logfd.close)
return args
def test_latest_stable_to_edge(args):
"""
Verify if we can upgrade from the latest stable image to edge.
"""
POSTMARKETOS_BRANCH_EDGE="master"
POSTMARKETOS_BRANCH_LATEST_STABLE="v21.12"
ALPINE_BRANCH_EDGE="edge"
ALPINE_BRANCH_LATEST_STABLE="v3.15"
args.no_image = True
args.device = "pine64-pinephone"
args.user = "user"
args.install_base = True
args.install_recommends = True
args.full_disk_encryption = False
args.on_device_installer = False
args.password = "147147"
args.no_sshd = False
args.no_firewall = False
suffix = "rootfs_pine64-pinephone"
# Zap any existing chroots
pmb.chroot.zap(args, confirm=False)
# Switch to latest stable in chroot
if pmb.helpers.run.user(args, ["git", "checkout", POSTMARKETOS_BRANCH_LATEST_STABLE],
args.aports, "interactive", check=False):
raise RuntimeError("Failed to switch branch. Go to your pmaports and"
" fix what git complained about, then try again: "
f"{args.aports}")
pmb.helpers.other.init_cache()
# Verify that we're on stable
pmb.chroot.root(args, ["cat", "/etc/apk/repositories"], suffix, auto_init=True)
# Install required programs in native chroot
pmb.chroot.apk.install(args, pmb.config.install_native_packages,
build=False)
# Install UI packages
pmb.install._install.create_device_rootfs(args, 2, 2)
# Switch to master in chroot
if pmb.helpers.run.user(args, ["git", "checkout", POSTMARKETOS_BRANCH_EDGE],
args.aports, "interactive", check=False):
raise RuntimeError("Failed to switch branch. Go to your pmaports and"
" fix what git complained about, then try again: "
f"{args.aports}")
pmb.chroot.root(args, ["sed", "-i", "-e", "s/" + POSTMARKETOS_BRANCH_LATEST_STABLE + "/" + POSTMARKETOS_BRANCH_EDGE + "/g", "/etc/apk/repositories"], suffix)
pmb.chroot.root(args, ["sed", "-i", "-e", "s/" + ALPINE_BRANCH_LATEST_STABLE + "/" + ALPINE_BRANCH_EDGE + "/g", "/etc/apk/repositories"], suffix)
pmb.helpers.other.init_cache()
# Verify that we're on master
pmb.chroot.root(args, ["cat", "/etc/apk/repositories"], suffix, auto_init=False)
# Perform upgrade
pmb.chroot.root(args, ["apk", "upgrade", "-a"], suffix, auto_init=False)
if __name__ == "__main__":
# Initialize args
sys.argv = ["pmbootstrap", "chroot"]
args = pmb.parse.arguments()
# Initialize logging
pmb.helpers.logging.init(args)
test_latest_stable_to_edge(args)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment