From 8a4ef5e6c0126037412794699d5f80540ffd4802 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 4 Feb 2021 08:11:47 +0100 Subject: Add testcase for diamond dependencies Signed-off-by: Matthias Beyer --- examples/packages/diamond-dependencies/Makefile | 33 ++++++++++++++ examples/packages/diamond-dependencies/README.md | 20 +++++++++ .../packages/diamond-dependencies/repo/a/pkg.toml | 7 +++ .../packages/diamond-dependencies/repo/b/pkg.toml | 9 ++++ .../packages/diamond-dependencies/repo/c/pkg.toml | 9 ++++ .../packages/diamond-dependencies/repo/config.toml | 52 ++++++++++++++++++++++ .../packages/diamond-dependencies/repo/d/pkg.toml | 9 ++++ .../packages/diamond-dependencies/repo/pkg.toml | 20 +++++++++ ...e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e.source | 1 + ...7448d8798a4380162d4b56f9b452e2f6f9e24e7a.source | 1 + ...a3db5c13ff90a36963278c6a39e4ee3c22e2a436.source | 1 + ...9c6b057a2b9d96a4067a749ee3b3b0158d390cf1.source | 1 + 12 files changed, 163 insertions(+) create mode 100644 examples/packages/diamond-dependencies/Makefile create mode 100644 examples/packages/diamond-dependencies/README.md create mode 100644 examples/packages/diamond-dependencies/repo/a/pkg.toml create mode 100644 examples/packages/diamond-dependencies/repo/b/pkg.toml create mode 100644 examples/packages/diamond-dependencies/repo/c/pkg.toml create mode 100644 examples/packages/diamond-dependencies/repo/config.toml create mode 100644 examples/packages/diamond-dependencies/repo/d/pkg.toml create mode 100644 examples/packages/diamond-dependencies/repo/pkg.toml create mode 100644 examples/packages/diamond-dependencies/sources/a-1/src-e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e.source create mode 100644 examples/packages/diamond-dependencies/sources/b-2/src-7448d8798a4380162d4b56f9b452e2f6f9e24e7a.source create mode 100644 examples/packages/diamond-dependencies/sources/c-3/src-a3db5c13ff90a36963278c6a39e4ee3c22e2a436.source create mode 100644 examples/packages/diamond-dependencies/sources/d-4/src-9c6b057a2b9d96a4067a749ee3b3b0158d390cf1.source diff --git a/examples/packages/diamond-dependencies/Makefile b/examples/packages/diamond-dependencies/Makefile new file mode 100644 index 0000000..45bb2aa --- /dev/null +++ b/examples/packages/diamond-dependencies/Makefile @@ -0,0 +1,33 @@ +export BUTIDO_RELEASES="/tmp/butido-test-diamond-dependencies-releases" +export BUTIDO_STAGING="/tmp/butido-test-diamond-dependencies-staging" +export BUTIDO_SOURCE_CACHE="/tmp/butido-test-diamond-dependencies-sources" +export BUTIDO_LOG_DIR="/tmp/butido-test-diamond-dependencies-logs" +export BUTIDO_REPO="/tmp/butido-test-diamond-dependencies-repo" + +.PHONY: all +all: directories copyrepo copysrc + +directories: ${BUTIDO_RELEASES} ${BUTIDO_STAGING} ${BUTIDO_SOURCE_CACHE} ${BUTIDO_LOG_DIR} ${BUTIDO_REPO} + +copyrepo: ${BUTIDO_REPO} + cp -rv ./repo/* ${BUTIDO_REPO}/ + cd ${BUTIDO_REPO}/ && git init && git add . && git commit -m init + +copysrc: ${BUTIDO_SOURCE_CACHE} + cp -rv ./sources/* ${BUTIDO_SOURCE_CACHE}/ + +${BUTIDO_RELEASES}: + mkdir -p "${BUTIDO_RELEASES}" + +${BUTIDO_STAGING}: + mkdir -p "${BUTIDO_STAGING}" + +${BUTIDO_SOURCE_CACHE}: + mkdir -p "${BUTIDO_SOURCE_CACHE}" + +${BUTIDO_LOG_DIR}: + mkdir -p "${BUTIDO_LOG_DIR}" + +${BUTIDO_REPO}: + mkdir -p "${BUTIDO_REPO}" + diff --git a/examples/packages/diamond-dependencies/README.md b/examples/packages/diamond-dependencies/README.md new file mode 100644 index 0000000..7907e79 --- /dev/null +++ b/examples/packages/diamond-dependencies/README.md @@ -0,0 +1,20 @@ +# Test diamond dependencies + +This subtree provides a testcase for the following: + +If we have a package tree that looks like this: + + .-> C -. + / \ + D > A + \ / + `-> B -ยด + +(arrow means "depends on"). + + +## Note + +To reproduce the issue, make sure to adapt the ./repo/config.toml as appropriate +for your environment. + diff --git a/examples/packages/diamond-dependencies/repo/a/pkg.toml b/examples/packages/diamond-dependencies/repo/a/pkg.toml new file mode 100644 index 0000000..e3670c6 --- /dev/null +++ b/examples/packages/diamond-dependencies/repo/a/pkg.toml @@ -0,0 +1,7 @@ +name = "a" +version = "1" + +[sources.src] +url = "https://example.com" +hash.hash = "e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e" + diff --git a/examples/packages/diamond-dependencies/repo/b/pkg.toml b/examples/packages/diamond-dependencies/repo/b/pkg.toml new file mode 100644 index 0000000..6c0f448 --- /dev/null +++ b/examples/packages/diamond-dependencies/repo/b/pkg.toml @@ -0,0 +1,9 @@ +name = "b" +version = "2" + +[dependencies] +build = ["a =1"] + +[sources.src] +url = "https://example.com" +hash.hash = "7448d8798a4380162d4b56f9b452e2f6f9e24e7a" diff --git a/examples/packages/diamond-dependencies/repo/c/pkg.toml b/examples/packages/diamond-dependencies/repo/c/pkg.toml new file mode 100644 index 0000000..b3b28bb --- /dev/null +++ b/examples/packages/diamond-dependencies/repo/c/pkg.toml @@ -0,0 +1,9 @@ +name = "c" +version = "3" + +[dependencies] +build = ["a =1"] + +[sources.src] +url = "https://example.com" +hash.hash = "a3db5c13ff90a36963278c6a39e4ee3c22e2a436" diff --git a/examples/packages/diamond-dependencies/repo/config.toml b/examples/packages/diamond-dependencies/repo/config.toml new file mode 100644 index 0000000..e097bcd --- /dev/null +++ b/examples/packages/diamond-dependencies/repo/config.toml @@ -0,0 +1,52 @@ +# Example configuration file for butido +compatibility = "0.1.0" +script_highlight_theme = "Solarized (dark)" + +releases = "/tmp/butido-test-diamond-dependencies-releases" +staging = "/tmp/butido-test-diamond-dependencies-staging" +source_cache = "/tmp/butido-test-diamond-dependencies-sources" +log_dir = "/tmp/butido-test-diamond-dependencies-logs" + + +strict_script_interpolation = true + + +# +# +# Log database configuration +# +# + +# Database configuration should be self-explanatory +database_host = "localhost" +database_port = 5432 +database_user = "pgdev" +database_password = "password" +database_name = "butido" + +available_phases = [ "dummy" ] + + +[docker] + +# Images which can be used to build +# images not listed here are automatically rejected +images = [ "debian:bullseye" ] +verify_images_present = true + +# +# List of docker endpoints +# + +[[docker.endpoints]] +name = "testhostname" +uri = "http://0.0.0.0:8095" # the URI of the endpoint. Either http or socket path +endpoint_type = "http" # either "http" or "socket" +speed = 1 # currently ignored, but required to be present +maxjobs = 1 # currently ignored, but required to be present + + +[containers] +check_env_names = true +allowed_env = [ ] + diff --git a/examples/packages/diamond-dependencies/repo/d/pkg.toml b/examples/packages/diamond-dependencies/repo/d/pkg.toml new file mode 100644 index 0000000..55aef0b --- /dev/null +++ b/examples/packages/diamond-dependencies/repo/d/pkg.toml @@ -0,0 +1,9 @@ +name = "d" +version = "4" + +[dependencies] +build = ["b =2", "c =3"] + +[sources.src] +url = "https://example.com" +hash.hash = "9c6b057a2b9d96a4067a749ee3b3b0158d390cf1" diff --git a/examples/packages/diamond-dependencies/repo/pkg.toml b/examples/packages/diamond-dependencies/repo/pkg.toml new file mode 100644 index 0000000..aff709b --- /dev/null +++ b/examples/packages/diamond-dependencies/repo/pkg.toml @@ -0,0 +1,20 @@ +version_is_semver = false +patches = [] + +[dependencies] +build = [] +runtime = [] + +[sources.src] +hash.type = "sha1" +download_manually = false + +[phases] + +dummy.script = ''' + echo "Dummy" + + mkdir /outputs + touch /outputs/{{this.name}}-{{this.version}}.pkg +''' + diff --git a/examples/packages/diamond-dependencies/sources/a-1/src-e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e.source b/examples/packages/diamond-dependencies/sources/a-1/src-e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e.source new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/examples/packages/diamond-dependencies/sources/a-1/src-e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e.source @@ -0,0 +1 @@ +1 diff --git a/examples/packages/diamond-dependencies/sources/b-2/src-7448d8798a4380162d4b56f9b452e2f6f9e24e7a.source b/examples/packages/diamond-dependencies/sources/b-2/src-7448d8798a4380162d4b56f9b452e2f6f9e24e7a.source new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/examples/packages/diamond-dependencies/sources/b-2/src-7448d8798a4380162d4b56f9b452e2f6f9e24e7a.source @@ -0,0 +1 @@ +2 diff --git a/examples/packages/diamond-dependencies/sources/c-3/src-a3db5c13ff90a36963278c6a39e4ee3c22e2a436.source b/examples/packages/diamond-dependencies/sources/c-3/src-a3db5c13ff90a36963278c6a39e4ee3c22e2a436.source new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/examples/packages/diamond-dependencies/sources/c-3/src-a3db5c13ff90a36963278c6a39e4ee3c22e2a436.source @@ -0,0 +1 @@ +3 diff --git a/examples/packages/diamond-dependencies/sources/d-4/src-9c6b057a2b9d96a4067a749ee3b3b0158d390cf1.source b/examples/packages/diamond-dependencies/sources/d-4/src-9c6b057a2b9d96a4067a749ee3b3b0158d390cf1.source new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/examples/packages/diamond-dependencies/sources/d-4/src-9c6b057a2b9d96a4067a749ee3b3b0158d390cf1.source @@ -0,0 +1 @@ +4 -- cgit v1.2.3