Updated logging for multi-repo setup
parent
014ade5092
commit
cb2ba86200
|
@ -18,17 +18,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
* Very basic build system
|
* Very basic build system
|
||||||
* Build is triggered by separate cron container
|
* Build is triggered by separate cron container
|
||||||
* Packages build on cron container's system
|
* Packages build on cron container's system
|
||||||
* Packages are always rebuilt, even if they haven't changed
|
* A HEAD request is used to determine whether a package should be rebuilt
|
||||||
|
or not
|
||||||
* Hardcoded planning of builds
|
* Hardcoded planning of builds
|
||||||
* Builds are sequential
|
* Builds are sequential
|
||||||
* API for managing Git repositories to build
|
* API for managing Git repositories to build
|
||||||
* CLI to list, add & remove Git repos to build
|
* CLI to list, add & remove Git repos to build
|
||||||
* Published packages on my Vieter instance
|
* Published packages on my Vieter instance
|
||||||
|
* Support for multiple repositories
|
||||||
|
* Support for multiple architectures per repository
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
|
|
||||||
* Each package can now only have one version in the repository at once
|
* Each package can now only have one version in the repository at once
|
||||||
(required by Pacman)
|
(required by Pacman)
|
||||||
|
* Packages with unknown fields in .PKGINFO are now allowed
|
||||||
|
|
||||||
## [0.1.0](https://git.rustybever.be/Chewing_Bever/vieter/src/tag/0.1.0)
|
## [0.1.0](https://git.rustybever.be/Chewing_Bever/vieter/src/tag/0.1.0)
|
||||||
|
|
||||||
|
|
|
@ -81,15 +81,16 @@ fn (r &RepoGroupManager) add_pkg_in_repo(repo string, pkg &package.Pkg) ?bool {
|
||||||
arch_repos << r.default_arch
|
arch_repos << r.default_arch
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mut added := false
|
||||||
|
|
||||||
for arch in arch_repos {
|
for arch in arch_repos {
|
||||||
r.add_pkg_in_arch_repo(repo, arch, pkg) ?
|
added = added || r.add_pkg_in_arch_repo(repo, arch, pkg) ?
|
||||||
}
|
|
||||||
}else{
|
|
||||||
r.add_pkg_in_arch_repo(repo, pkg.info.arch, pkg) ?
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO properly handle this
|
return added
|
||||||
return true
|
}else{
|
||||||
|
return r.add_pkg_in_arch_repo(repo, pkg.info.arch, pkg)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// add_pkg_in_repo adds the given package to the specified repo. A repo is an
|
// add_pkg_in_repo adds the given package to the specified repo. A repo is an
|
||||||
|
|
|
@ -86,15 +86,16 @@ fn (mut app App) put_package(repo string) web.Result {
|
||||||
|
|
||||||
return app.text('Failed to add package.')
|
return app.text('Failed to add package.')
|
||||||
}
|
}
|
||||||
|
|
||||||
if !res.added {
|
if !res.added {
|
||||||
os.rm(pkg_path) or { app.lerror("Failed to remove download '$pkg_path': $err.msg") }
|
os.rm(pkg_path) or { app.lerror("Failed to remove download '$pkg_path': $err.msg") }
|
||||||
|
|
||||||
app.lwarn("Duplicate package '$res.pkg.full_name()'.")
|
app.lwarn("Duplicate package '$res.pkg.full_name()' in repo '$repo ($res.pkg.info.arch)'.")
|
||||||
|
|
||||||
return app.text('File already exists.')
|
return app.text('File already exists.')
|
||||||
}
|
}
|
||||||
|
|
||||||
app.linfo("Added '$res.pkg.full_name()' to repository.")
|
app.linfo("Added '$res.pkg.full_name()' to repo '$repo ($res.pkg.info.arch)'.")
|
||||||
|
|
||||||
return app.text('Package added successfully.')
|
return app.text('Package added successfully.')
|
||||||
}
|
}
|
||||||
|
|
4
test.py
4
test.py
|
@ -46,7 +46,7 @@ def create_random_pkginfo(words, name_min_len, name_max_len):
|
||||||
"pkgname": name,
|
"pkgname": name,
|
||||||
"pkgbase": name,
|
"pkgbase": name,
|
||||||
"pkgver": ver,
|
"pkgver": ver,
|
||||||
"arch": "any"
|
"arch": "x86_64"
|
||||||
}
|
}
|
||||||
|
|
||||||
return "\n".join(f"{key} = {value}" for key, value in data.items())
|
return "\n".join(f"{key} = {value}" for key, value in data.items())
|
||||||
|
@ -97,7 +97,7 @@ async def upload_random_package(tar_path, sem):
|
||||||
async with sem:
|
async with sem:
|
||||||
with open(tar_path, 'rb') as f:
|
with open(tar_path, 'rb') as f:
|
||||||
async with aiohttp.ClientSession() as s:
|
async with aiohttp.ClientSession() as s:
|
||||||
async with s.post("http://localhost:8000/vieter/publish", data=f.read(), headers={"x-api-key": "test"}) as r:
|
async with s.post("http://localhost:8000/vieter2/publish", data=f.read(), headers={"x-api-key": "test"}) as r:
|
||||||
return await check_output(r)
|
return await check_output(r)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue