forked from vieter-v/vieter
				
			Fixed linting errors
							parent
							
								
									732b53b6ce
								
							
						
					
					
						commit
						4a4362c138
					
				
							
								
								
									
										14
									
								
								src/build.v
								
								
								
								
							
							
						
						
									
										14
									
								
								src/build.v
								
								
								
								
							| 
						 | 
				
			
			@ -2,7 +2,6 @@ module main
 | 
			
		|||
 | 
			
		||||
import docker
 | 
			
		||||
import encoding.base64
 | 
			
		||||
import rand
 | 
			
		||||
import time
 | 
			
		||||
import json
 | 
			
		||||
import server
 | 
			
		||||
| 
						 | 
				
			
			@ -10,6 +9,7 @@ import env
 | 
			
		|||
import net.http
 | 
			
		||||
 | 
			
		||||
const container_build_dir = '/build'
 | 
			
		||||
 | 
			
		||||
const build_image_repo = 'vieter-build'
 | 
			
		||||
 | 
			
		||||
fn create_build_image() ?string {
 | 
			
		||||
| 
						 | 
				
			
			@ -83,13 +83,13 @@ fn build() ? {
 | 
			
		|||
	for repo in repos {
 | 
			
		||||
		// TODO what to do with PKGBUILDs that build multiple packages?
 | 
			
		||||
		commands := [
 | 
			
		||||
			"git clone --single-branch --depth 1 --branch $repo.branch $repo.url repo"
 | 
			
		||||
			'cd repo'
 | 
			
		||||
			"makepkg --nobuild --nodeps"
 | 
			
		||||
			'source PKGBUILD'
 | 
			
		||||
			'git clone --single-branch --depth 1 --branch $repo.branch $repo.url repo',
 | 
			
		||||
			'cd repo',
 | 
			
		||||
			'makepkg --nobuild --nodeps',
 | 
			
		||||
			'source PKGBUILD',
 | 
			
		||||
			// The build container checks whether the package is already present on the server
 | 
			
		||||
			"curl --head --fail $conf.address/\$pkgname-\$pkgver-\$pkgrel-\$(uname -m).pkg.tar.zst && exit 0"
 | 
			
		||||
			'MAKEFLAGS="-j\$(nproc)" makepkg -s --noconfirm --needed && for pkg in \$(ls -1 *.pkg*); do curl -XPOST -T "\$pkg" -H "X-API-KEY: \$API_KEY" $conf.address/publish; done'
 | 
			
		||||
			'curl --head --fail $conf.address/\$pkgname-\$pkgver-\$pkgrel-\$(uname -m).pkg.tar.zst && exit 0',
 | 
			
		||||
			'MAKEFLAGS="-j\$(nproc)" makepkg -s --noconfirm --needed && for pkg in \$(ls -1 *.pkg*); do curl -XPOST -T "\$pkg" -H "X-API-KEY: \$API_KEY" $conf.address/publish; done',
 | 
			
		||||
		]
 | 
			
		||||
 | 
			
		||||
		// We convert the list of commands into a base64 string, which then gets
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,8 +20,8 @@ pub struct NewContainer {
 | 
			
		|||
	entrypoint []string [json: Entrypoint]
 | 
			
		||||
	cmd        []string [json: Cmd]
 | 
			
		||||
	env        []string [json: Env]
 | 
			
		||||
	work_dir   string   [json:  WorkingDir]
 | 
			
		||||
	user string [json: User]
 | 
			
		||||
	work_dir   string   [json: WorkingDir]
 | 
			
		||||
	user       string   [json: User]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct CreatedContainer {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,8 @@ pub fn pull_image(image string, tag string) ?http.Response {
 | 
			
		|||
	return request('POST', urllib.parse('/v1.41/images/create?fromImage=$image&tag=$tag') ?)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// create_image_from_container creates a new image from a container with the
 | 
			
		||||
// given repo & tag, given the container's ID.
 | 
			
		||||
pub fn create_image_from_container(id string, repo string, tag string) ?Image {
 | 
			
		||||
	res := request('POST', urllib.parse('/v1.41/commit?container=$id&repo=$repo&tag=$tag') ?) ?
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -24,6 +26,7 @@ pub fn create_image_from_container(id string, repo string, tag string) ?Image {
 | 
			
		|||
	return json.decode(Image, res.text) or {}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// remove_image removes the image with the given ID.
 | 
			
		||||
pub fn remove_image(id string) ?bool {
 | 
			
		||||
	res := request('DELETE', urllib.parse('/v1.41/images/$id') ?) ?
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue