diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7838570..2529ab8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,24 +1,10 @@ image: docker:19.03.12 -job-init: - stage: .pre - script: echo "make something useful before build stage" - job-build-docker-latest: stage: build services: - docker:19.03.12-dind script: - - apk update && apk add curl jq python3 py3-pip - - export export MAJOR=$(jq -r .b3d_vs_major build.json) - - export export MINOR=$(jq -r .b3d_vs_minor build.json) - - echo Blender version are $MAJOR - - echo The Minor blender version are $MINOR - - docker login --username stilobique --password $docker_hub_password - - docker build --build-arg b3d_vs_major=$MAJOR --build-arg b3d_vs_minor=$MINOR --tag stilobique/blender:$MAJOR.$MINOR . - - docker push - -#job-build-docker-tag: -# stage: build -# script: -# - docker build -t stilobique/blender:latest + - python -m pip install --upgrade pip + - python -m pip install -r requirement-build.txt + - python main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..d382052 --- /dev/null +++ b/main.py @@ -0,0 +1,45 @@ +import os +import pathlib +import json +import docker + + +def get_data_from_json() -> (str, str): + file = pathlib.Path(os.getcwd(), 'build.json') + data: dict = {} + + with open(file, 'r') as f: + data = json.load(f) + f.close() + + version_values = data['tags'][0] + major, minor = version_values['b3d_vs_major'], version_values['b3d_vs_minor'] + print(f'Compile blender version "{major}.{minor}"') + + return major, minor + + +def build_docker(b3d_version: (str, str)): + client = docker.from_env() + if os.environ.get('docker_hub_password'): + user = os.environ['docker_hub_user'] + password = os.environ['docker_hub_password'] + client.login(username=user, password=password) + + # Init all data to build the docker image + args = { + 'b3d_vs_major': str(b3d_version[0]), + 'b3d_vs_minor': str(b3d_version[1]), + } + tag_name = f'stilobique/blender:{args["b3d_vs_major"]}.{args["b3d_vs_minor"]}' + + b3d_image = client.images.build(path="./", buildargs=args, tag=tag_name) + b3d_image.push() + + +if __name__ == "__main__": + print('1 -> Setup the package') + version = get_data_from_json() + print('2 -> Build from image file') + build_docker(version) + print('3 -> Push the new images') diff --git a/requirement-build.txt b/requirement-build.txt new file mode 100644 index 0000000..6d0eac4 --- /dev/null +++ b/requirement-build.txt @@ -0,0 +1 @@ +docker \ No newline at end of file