#!/usr/bin/php get($url)->getBody()->getContents(); $json = json_decode($data, true); $results = array_merge($results, $json['results']); if($json['next']){ $url = $json['next']; }else{ $allLoaded = true; } } $travisYaml = [ 'language' => 'bash', 'notifications' => [ 'email' => [ 'matthew@baggett.me', ] ], 'before_script' => [ 'docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD $DOCKER_REGISTRY', 'sudo rm /usr/local/bin/docker-compose', 'curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-`uname -s`-`uname -m` > docker-compose', 'chmod +x docker-compose', 'sudo mv docker-compose /usr/local/bin', ], 'script' => [ "docker-compose -f build.yml build $stumpName-\$VERSION", ], 'after_script' => [ "docker-compose -f build.yml push $stumpName-\$VERSION", ], 'env' => [], ]; $buildYaml = [ 'version' => (string) '2.3', 'services' => [] ]; foreach($results as $result) { if(!isset($result['name'])) continue; if(in_array($result['name'], $excludedTags)) continue; $dockerfileLines = []; $dockerfileLines[] = "# From upstream {$stumpName}:{$result['name']}"; $dockerfileLines[] = "FROM {$stumpName}:{$result['name']}"; $dockerfileLines[] = "# Add healthcheck"; $dockerfileLines[] = "HEALTHCHECK --interval=30s --timeout=3s \\"; $dockerfileLines[] = " CMD redis-cli PING "; $dockerfile = "generated/Dockerfile.{$result['name']}"; $buildYaml['services'][$stumpName . '-' . $result['name']] = [ 'build' => [ 'context' => '.', 'dockerfile' => $dockerfile ], 'image' => "benzine/redis:{$result['name']}", ]; $travisYaml['env'][] = "VERSION={$result['name']}"; file_put_contents($dockerfile, implode("\n", $dockerfileLines)); } sort($travisYaml['env']); $travisYaml['env'] = array_slice($travisYaml['env'],-200,200); file_put_contents("build.yml", Yaml::dump($buildYaml)); file_put_contents(".travis.yml", Yaml::dump($travisYaml));