forked from vieter-v/vieter
				
			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