From 3130a86ab8a88966002794c4b90831460fa3eb9a Mon Sep 17 00:00:00 2001 From: Ryan Kuba Date: Mon, 25 Sep 2023 10:35:54 +0000 Subject: [PATCH] Resolve KASM-5044 "Feature/ templated pipelines" --- .gitlab-ci.yml | 369 +---------- ci-scripts/build.sh | 6 +- ci-scripts/gitlab-ci.template | 243 +++++++ ci-scripts/manifest.sh | 2 +- ci-scripts/readme.sh | 2 +- ci-scripts/template-gitlab.py | 35 + ci-scripts/template-vars.yaml | 624 ++++++++++++++++++ ci-scripts/test.sh | 12 +- src/ubuntu/install/firefox/install_firefox.sh | 2 +- .../install/tracelabs/install_tracelabs.sh | 7 +- 10 files changed, 938 insertions(+), 364 deletions(-) create mode 100644 ci-scripts/gitlab-ci.template create mode 100644 ci-scripts/template-gitlab.py create mode 100644 ci-scripts/template-vars.yaml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4958faa..ca01240 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,364 +1,37 @@ ############ # Settings # ############ -image: docker +image: docker:24.0.6 services: - - docker:dind + - docker:24.0.6-dind stages: - - readme - - revert - - build - - test - - manifest + - template + - run variables: BASE_TAG: "develop" USE_PRIVATE_IMAGES: 0 KASM_RELEASE: "1.14.0" - DOCKER_HOST: tcp://docker:2375 - DOCKER_TLS_CERTDIR: "" - DOCKER_AUTH_CONFIG: ${_DOCKER_AUTH_CONFIG} TEST_INSTALLER: "https://kasm-static-content.s3.amazonaws.com/kasm_release_1.14.0.7f3582.tar.gz" before_script: - - docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD - export SANITIZED_BRANCH="$(echo $CI_COMMIT_REF_NAME | sed -r 's#^release/##' | sed 's/\//_/g')" -################ -# YAML anchors # -################ - -# Metadata format - name|baseimage|dockerfile -.MULTI_ARCH_BUILDS: &MULTI_ARCH_BUILDS - - "audacity|core-ubuntu-focal|dockerfile-kasm-audacity" - - "chromium|core-ubuntu-focal|dockerfile-kasm-chromium" - - "deluge|core-ubuntu-focal|dockerfile-kasm-deluge" - - "doom|core-ubuntu-focal|dockerfile-kasm-doom" - - "filezilla|core-ubuntu-focal|dockerfile-kasm-filezilla" - - "firefox|core-ubuntu-focal|dockerfile-kasm-firefox" - - "gimp|core-ubuntu-focal|dockerfile-kasm-gimp" - - "inkscape|core-ubuntu-focal|dockerfile-kasm-inkscape" - - "java-dev|core-ubuntu-focal|dockerfile-kasm-java-dev" - - "libre-office|core-ubuntu-focal|dockerfile-kasm-libre-office" - - "opensuse-15-desktop|core-opensuse-15|dockerfile-kasm-opensuse-15-desktop" - - "oracle-8-desktop|core-oracle-8|dockerfile-kasm-oracle-8-desktop" - - "pinta|core-ubuntu-focal|dockerfile-kasm-pinta" - - "qbittorrent|core-ubuntu-focal|dockerfile-kasm-qbittorrent" - - "remmina|core-ubuntu-focal|dockerfile-kasm-remmina" - - "sublime-text|core-ubuntu-focal|dockerfile-kasm-sublime-text" - - "telegram|core-ubuntu-focal|dockerfile-kasm-telegram" - - "terminal|core-ubuntu-focal|dockerfile-kasm-terminal" - - "thunderbird|core-ubuntu-focal|dockerfile-kasm-thunderbird" - - "tor-browser|core-ubuntu-focal|dockerfile-kasm-tor-browser" - - "ubuntu-focal-desktop|core-ubuntu-focal|dockerfile-kasm-ubuntu-focal-desktop" - - "ubuntu-jammy-desktop|core-ubuntu-jammy|dockerfile-kasm-ubuntu-jammy-desktop" - - "vlc|core-ubuntu-focal|dockerfile-kasm-vlc" - - "vs-code|core-ubuntu-focal|dockerfile-kasm-vs-code" -.MULTI_ARCH_BUILDS2: &MULTI_ARCH_BUILDS2 - - "almalinux-8-desktop|core-almalinux-8|dockerfile-kasm-almalinux-8-desktop" - - "almalinux-9-desktop|core-almalinux-9|dockerfile-kasm-almalinux-9-desktop" - - "alpine-317-desktop|core-alpine-317|dockerfile-kasm-alpine-317-desktop" - - "alpine-318-desktop|core-alpine-318|dockerfile-kasm-alpine-318-desktop" - - "brave|core-ubuntu-focal|dockerfile-kasm-brave" - - "debian-bullseye-desktop|core-debian-bullseye|dockerfile-kasm-debian-bullseye-desktop" - - "debian-bookworm-desktop|core-debian-bookworm|dockerfile-kasm-debian-bookworm-desktop" - - "fedora-37-desktop|core-fedora-37|dockerfile-kasm-fedora-37-desktop" - - "fedora-38-desktop|core-fedora-38|dockerfile-kasm-fedora-38-desktop" - - "kali-rolling-desktop|core-kali-rolling|dockerfile-kasm-kali-rolling-desktop" - - "minetest|core-ubuntu-focal|dockerfile-kasm-minetest" - - "oracle-9-desktop|core-oracle-9|dockerfile-kasm-oracle-9-desktop" - - "parrotos-5-desktop|core-parrotos-5|dockerfile-kasm-parrotos-5-desktop" - - "retroarch|core-ubuntu-focal|dockerfile-kasm-retroarch" - - "rockylinux-8-desktop|core-rockylinux-8|dockerfile-kasm-rockylinux-8-desktop" - - "rockylinux-9-desktop|core-rockylinux-9|dockerfile-kasm-rockylinux-9-desktop" - - "super-tux-kart|core-ubuntu-focal|dockerfile-kasm-super-tux-kart" - - "ubuntu-focal-dind|core-ubuntu-focal|dockerfile-kasm-ubuntu-focal-dind" - - "ubuntu-focal-dind-rootless|core-ubuntu-focal|dockerfile-kasm-ubuntu-focal-dind-rootless" - - "ubuntu-jammy-dind|core-ubuntu-jammy|dockerfile-kasm-ubuntu-jammy-dind" - - "ubuntu-jammy-dind-rootless|core-ubuntu-jammy|dockerfile-kasm-ubuntu-jammy-dind-rootless" - - "vivaldi|core-ubuntu-focal|dockerfile-kasm-vivaldi" -.SINGLE_ARCH_BUILDS: &SINGLE_ARCH_BUILDS - - "atom|core-ubuntu-focal|dockerfile-kasm-atom" - - "blender|core-ubuntu-focal|dockerfile-kasm-blender" - - "centos-7-desktop|core-centos-7|dockerfile-kasm-centos-7-desktop" - - "chrome|core-ubuntu-focal|dockerfile-kasm-chrome" - - "desktop|core-ubuntu-focal|dockerfile-kasm-desktop" - - "desktop-deluxe|core-ubuntu-focal|dockerfile-kasm-desktop-deluxe" - - "discord|core-ubuntu-focal|dockerfile-kasm-discord" - - "edge|core-ubuntu-focal|dockerfile-kasm-edge" - - "hunchly|core-ubuntu-focal|dockerfile-kasm-hunchly" - - "insomnia|core-ubuntu-jammy|dockerfile-kasm-insomnia" - - "maltego|core-ubuntu-focal|dockerfile-kasm-maltego" - - "only-office|core-ubuntu-focal|dockerfile-kasm-only-office" - - "oracle-7-desktop|core-oracle-7|dockerfile-kasm-oracle-7-desktop" - - "postman|core-ubuntu-focal|dockerfile-kasm-postman" - - "remnux-focal-desktop|core-ubuntu-focal|dockerfile-kasm-remnux-focal-desktop" - - "signal|core-ubuntu-focal|dockerfile-kasm-signal" - - "steam|core-ubuntu-focal|dockerfile-kasm-steam" - - "tracelabs|core-kali-rolling|dockerfile-kasm-tracelabs" - - "unityhub|core-ubuntu-focal|dockerfile-kasm-unityhub" - - "zoom|core-ubuntu-focal|dockerfile-kasm-zoom" - - "zsnes|core-ubuntu-focal|dockerfile-kasm-zsnes" - -############################################### -# Build Containers and push to cache endpoint # -############################################### -build_multi_containers: - stage: build +####################### +# Build from template # +####################### +template: + stage: template script: - - apk add bash - - bash ci-scripts/build.sh "${BUILD_META}" - except: - variables: - - $README_USERNAME - - $README_PASSWORD - - $DOCKERHUB_REVERT - - $REVERT_IS_ROLLING - tags: - - ${TAG} - retry: 1 - parallel: - matrix: - - TAG: [ oci-fixed-amd, oci-fixed-arm ] - BUILD_META: *MULTI_ARCH_BUILDS - -build_multi_containers2: - stage: build - script: - - apk add bash - - bash ci-scripts/build.sh "${BUILD_META}" - except: - variables: - - $README_USERNAME - - $README_PASSWORD - - $DOCKERHUB_REVERT - - $REVERT_IS_ROLLING - tags: - - ${TAG} - retry: 1 - parallel: - matrix: - - TAG: [ oci-fixed-amd, oci-fixed-arm ] - BUILD_META: *MULTI_ARCH_BUILDS2 - -build_single_containers: - stage: build - script: - - apk add bash - - bash ci-scripts/build.sh "${BUILD_META}" - except: - variables: - - $README_USERNAME - - $README_PASSWORD - - $DOCKERHUB_REVERT - - $REVERT_IS_ROLLING + - apk add py3-jinja2 py3-yaml + - cd ci-scripts + - python3 template-gitlab.py tags: - oci-fixed-amd - retry: 1 - parallel: - matrix: - - BUILD_META: *SINGLE_ARCH_BUILDS - -###################################### -# Test containers and upload results # -###################################### -test_multi: - stage: test - when: always - script: - - apk add bash - - bash ci-scripts/test.sh "${BUILD_META}" "${ARCH}" "${EC2_LAUNCHER_ID}" "${EC2_LAUNCHER_SECRET}" - except: - variables: - - $README_USERNAME - - $README_PASSWORD - - $DOCKERHUB_REVERT - - $REVERT_IS_ROLLING - tags: - - oci-fixed-amd - retry: 1 - parallel: - matrix: - - ARCH: [ "x86_64", "aarch64" ] - BUILD_META: *MULTI_ARCH_BUILDS - -test_multi2: - stage: test - when: always - script: - - apk add bash - - bash ci-scripts/test.sh "${BUILD_META}" "${ARCH}" "${EC2_LAUNCHER_ID}" "${EC2_LAUNCHER_SECRET}" - except: - variables: - - $README_USERNAME - - $README_PASSWORD - - $DOCKERHUB_REVERT - - $REVERT_IS_ROLLING - tags: - - oci-fixed-amd - retry: 1 - parallel: - matrix: - - ARCH: [ "x86_64", "aarch64" ] - BUILD_META: *MULTI_ARCH_BUILDS2 - -test_single: - stage: test - when: always - script: - - apk add bash - - bash ci-scripts/test.sh "${BUILD_META}" "x86_64" "${EC2_LAUNCHER_ID}" "${EC2_LAUNCHER_SECRET}" - except: - variables: - - $README_USERNAME - - $README_PASSWORD - - $DOCKERHUB_REVERT - - $REVERT_IS_ROLLING - tags: - - oci-fixed-amd - retry: 1 - parallel: - matrix: - - BUILD_META: *SINGLE_ARCH_BUILDS - -############################################ -# Manifest Containers if their test passed # -############################################ -manifest_multi: - stage: manifest - when: always - script: - - apk add bash - - bash ci-scripts/manifest.sh "${BUILD_META}" "multi" - except: - variables: - - $README_USERNAME - - $README_PASSWORD - - $DOCKERHUB_REVERT - - $REVERT_IS_ROLLING - tags: - - oci-fixed-amd - parallel: - matrix: - - BUILD_META: *MULTI_ARCH_BUILDS - -manifest_multi2: - stage: manifest - when: always - script: - - apk add bash - - bash ci-scripts/manifest.sh "${BUILD_META}" "multi" - except: - variables: - - $README_USERNAME - - $README_PASSWORD - - $DOCKERHUB_REVERT - - $REVERT_IS_ROLLING - tags: - - oci-fixed-amd - parallel: - matrix: - - BUILD_META: *MULTI_ARCH_BUILDS2 - -manifest_single: - stage: manifest - when: always - script: - - apk add bash - - bash ci-scripts/manifest.sh "${BUILD_META}" "single" - except: - variables: - - $README_USERNAME - - $README_PASSWORD - - $DOCKERHUB_REVERT - - $REVERT_IS_ROLLING - tags: - - oci-fixed-amd - parallel: - matrix: - - BUILD_META: *SINGLE_ARCH_BUILDS - -#################### -# Helper Functions # -#################### - -## Update Readmes ## -update_readmes_multi: - stage: readme - script: - - apk add bash - - bash ci-scripts/readme.sh "${BUILD_META}" - only: - variables: - - $README_USERNAME - - $README_PASSWORD - tags: - - oci-fixed-amd - parallel: - matrix: - - BUILD_META: *MULTI_ARCH_BUILDS - -update_readmes_multi2: - stage: readme - script: - - apk add bash - - bash ci-scripts/readme.sh "${BUILD_META}" - only: - variables: - - $README_USERNAME - - $README_PASSWORD - tags: - - oci-fixed-amd - parallel: - matrix: - - BUILD_META: *MULTI_ARCH_BUILDS2 - -update_readmes_single: - stage: readme - script: - - apk add bash - - bash ci-scripts/readme.sh "${BUILD_META}" - only: - variables: - - $README_USERNAME - - $README_PASSWORD - tags: - - oci-fixed-amd - parallel: - matrix: - - BUILD_META: *SINGLE_ARCH_BUILDS - -## Revert Images to specific build id ## -dockerhub_revert_multi: - stage: revert - script: - - /bin/bash ci-scripts/manifest.sh "${BUILD_META}" "multi" "${DOCKERHUB_REVERT}" "${REVERT_IS_ROLLING}" - only: - variables: - - $DOCKERHUB_REVERT - - $REVERT_IS_ROLLING - parallel: - matrix: - - BUILD_META: *MULTI_ARCH_BUILDS - -dockerhub_revert_multi2: - stage: revert - script: - - /bin/bash ci-scripts/manifest.sh "${BUILD_META}" "multi" "${DOCKERHUB_REVERT}" "${REVERT_IS_ROLLING}" - only: - variables: - - $DOCKERHUB_REVERT - - $REVERT_IS_ROLLING - parallel: - matrix: - - BUILD_META: *MULTI_ARCH_BUILDS - -dockerhub_revert_single: - stage: revert - script: - - /bin/bash ci-scripts/manifest.sh "${BUILD_META}" "single" "${DOCKERHUB_REVERT}" "${REVERT_IS_ROLLING}" - only: - variables: - - $DOCKERHUB_REVERT - - $REVERT_IS_ROLLING - parallel: - matrix: - - BUILD_META: *SINGLE_ARCH_BUILDS + artifacts: + paths: + - gitlab-ci.yml +pipeline: + stage: run + trigger: + include: + - artifact: gitlab-ci.yml + job: template diff --git a/ci-scripts/build.sh b/ci-scripts/build.sh index 5e6f184..b33976d 100755 --- a/ci-scripts/build.sh +++ b/ci-scripts/build.sh @@ -1,9 +1,9 @@ #!/bin/bash ## Parse input ## -NAME=$(echo $1| awk -F'|' '{print $1}') -BASE=$(echo $1| awk -F'|' '{print $2}') -DOCKERFILE=$(echo $1| awk -F'|' '{print $3}') +NAME=$1 +BASE=$2 +DOCKERFILE=$3 # Determine if we are using private images if [ ${USE_PRIVATE_IMAGES} -eq 1 ]; then diff --git a/ci-scripts/gitlab-ci.template b/ci-scripts/gitlab-ci.template new file mode 100644 index 0000000..24548ff --- /dev/null +++ b/ci-scripts/gitlab-ci.template @@ -0,0 +1,243 @@ +############ +# Settings # +############ +image: docker:24.0.6 +services: + - docker:24.0.6-dind +stages: + - readme + - revert + - build + - test + - manifest +variables: + BASE_TAG: "{{ BASE_TAG }}" + USE_PRIVATE_IMAGES: {{ USE_PRIVATE_IMAGES }} + KASM_RELEASE: "{{ KASM_RELEASE }}" + DOCKER_HOST: tcp://docker:2375 + DOCKER_TLS_CERTDIR: "" + TEST_INSTALLER: "{{ TEST_INSTALLER }}" +before_script: + - docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD + - export SANITIZED_BRANCH="$(echo $CI_COMMIT_REF_NAME | sed -r 's#^release/##' | sed 's/\//_/g')" + +############################################### +# Build Containers and push to cache endpoint # +############################################### +{% for IMAGE in multiImages %} +build_{{ IMAGE.name }}: + stage: build + script: + - apk add bash + - bash ci-scripts/build.sh "{{ IMAGE.name }}" "{{ IMAGE.base }}" "{{ IMAGE.dockerfile }}" + {% if FILE_LIMITS %}only: + changes: + {% for FILE in files %}- {{ FILE }} + {% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }} + {% endfor %}{% endif %} + except: + variables: + - $README_USERNAME + - $README_PASSWORD + - $DOCKERHUB_REVERT + - $REVERT_IS_ROLLING + tags: + - ${TAG} + retry: 1 + parallel: + matrix: + - TAG: [ oci-fixed-amd, oci-fixed-arm ] +{% endfor %} + +{% for IMAGE in singleImages %} +build_{{ IMAGE.name }}: + stage: build + script: + - apk add bash + - bash ci-scripts/build.sh "{{ IMAGE.name }}" "{{ IMAGE.base }}" "{{ IMAGE.dockerfile }}" + {% if FILE_LIMITS %}only: + changes: + {% for FILE in files %}- {{ FILE }} + {% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }} + {% endfor %}{% endif %} + except: + variables: + - $README_USERNAME + - $README_PASSWORD + - $DOCKERHUB_REVERT + - $REVERT_IS_ROLLING + tags: + - oci-fixed-amd + retry: 1 +{% endfor %} + +###################################### +# Test containers and upload results # +###################################### +{% for IMAGE in multiImages %} +test_{{ IMAGE.name }}: + stage: test + when: always + script: + - apk add bash + - bash ci-scripts/test.sh "{{ IMAGE.name }}" "{{ IMAGE.base }}" "{{ IMAGE.dockerfile }}" "${ARCH}" "${EC2_LAUNCHER_ID}" "${EC2_LAUNCHER_SECRET}" + {% if FILE_LIMITS %}only: + changes: + {% for FILE in files %}- {{ FILE }} + {% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }} + {% endfor %}{% endif %} + except: + variables: + - $README_USERNAME + - $README_PASSWORD + - $DOCKERHUB_REVERT + - $REVERT_IS_ROLLING + needs: + - build_{{ IMAGE.name }} + when: on_success + tags: + - oci-fixed-amd + retry: 1 + parallel: + matrix: + - ARCH: [ "x86_64", "aarch64" ] +{% endfor %} + +{% for IMAGE in singleImages %} +test_{{ IMAGE.name }}: + stage: test + when: always + script: + - apk add bash + - bash ci-scripts/test.sh "{{ IMAGE.name }}" "{{ IMAGE.base }}" "{{ IMAGE.dockerfile }}" "x86_64" "${EC2_LAUNCHER_ID}" "${EC2_LAUNCHER_SECRET}" + {% if FILE_LIMITS %}only: + changes: + {% for FILE in files %}- {{ FILE }} + {% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }} + {% endfor %}{% endif %} + except: + variables: + - $README_USERNAME + - $README_PASSWORD + - $DOCKERHUB_REVERT + - $REVERT_IS_ROLLING + needs: + - build_{{ IMAGE.name }} + when: on_success + tags: + - oci-fixed-amd + retry: 1 +{% endfor %} + +############################################ +# Manifest Containers if their test passed # +############################################ +{% for IMAGE in multiImages %} +manifest_{{ IMAGE.name }}: + stage: manifest + when: always + script: + - apk add bash + - bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "multi" + {% if FILE_LIMITS %}only: + changes: + {% for FILE in files %}- {{ FILE }} + {% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }} + {% endfor %}{% endif %} + except: + variables: + - $README_USERNAME + - $README_PASSWORD + - $DOCKERHUB_REVERT + - $REVERT_IS_ROLLING + needs: + - test_{{ IMAGE.name }} + when: on_success + tags: + - oci-fixed-amd +{% endfor %} + +{% for IMAGE in singleImages %} +manifest_{{ IMAGE.name }}: + stage: manifest + when: always + script: + - apk add bash + - bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "single" + {% if FILE_LIMITS %}only: + changes: + {% for FILE in files %}- {{ FILE }} + {% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }} + {% endfor %}{% endif %} + except: + variables: + - $README_USERNAME + - $README_PASSWORD + - $DOCKERHUB_REVERT + - $REVERT_IS_ROLLING + needs: + - test_{{ IMAGE.name }} + when: on_success + tags: + - oci-fixed-amd +{% endfor %} + +#################### +# Helper Functions # +#################### + +## Update Readmes ## +{% for IMAGE in multiImages %} +update_readmes_{{ IMAGE.name }}: + stage: readme + script: + - apk add bash + - bash ci-scripts/readme.sh "{{ IMAGE.name }}" + only: + variables: + - $README_USERNAME + - $README_PASSWORD + tags: + - oci-fixed-amd +{% endfor %} + +{% for IMAGE in singleImages %} +update_readmes_{{ IMAGE.name }}: + stage: readme + script: + - apk add bash + - bash ci-scripts/readme.sh "{{ IMAGE.name }}" + only: + variables: + - $README_USERNAME + - $README_PASSWORD + tags: + - oci-fixed-amd +{% endfor %} + +## Revert Images to specific build id ## +{% for IMAGE in multiImages %} +dockerhub_revert_{{ IMAGE.name }}: + stage: revert + script: + - /bin/bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "multi" "${DOCKERHUB_REVERT}" "${REVERT_IS_ROLLING}" + only: + variables: + - $DOCKERHUB_REVERT + - $REVERT_IS_ROLLING + tags: + - oci-fixed-amd +{% endfor %} + +{% for IMAGE in singleImages %} +dockerhub_revert_{{ IMAGE.name }}: + stage: revert + script: + - /bin/bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "single" "${DOCKERHUB_REVERT}" "${REVERT_IS_ROLLING}" + only: + variables: + - $DOCKERHUB_REVERT + - $REVERT_IS_ROLLING + tags: + - oci-fixed-amd +{% endfor %} diff --git a/ci-scripts/manifest.sh b/ci-scripts/manifest.sh index b821774..1728cec 100755 --- a/ci-scripts/manifest.sh +++ b/ci-scripts/manifest.sh @@ -5,7 +5,7 @@ FAILED="false" # Ingest cli variables ## Parse input ## -NAME=$(echo $1| awk -F'|' '{print $1}') +NAME=$1 TYPE=$2 REVERT_PIPELINE_ID=$3 IS_ROLLING=$4 diff --git a/ci-scripts/readme.sh b/ci-scripts/readme.sh index 9dc1678..a9953ca 100755 --- a/ci-scripts/readme.sh +++ b/ci-scripts/readme.sh @@ -1,7 +1,7 @@ #! /bin/bash ## Parse input ## -NAME=$(echo $1| awk -F'|' '{print $1}') +NAME=$1 ## Run readme updater ## docker run -v $PWD/docs:/docs \ diff --git a/ci-scripts/template-gitlab.py b/ci-scripts/template-gitlab.py new file mode 100644 index 0000000..e3a8269 --- /dev/null +++ b/ci-scripts/template-gitlab.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 + +from jinja2 import Template +import yaml +import os + +# Determine if this is a feature branch +fileLimits = True +if os.getenv('SANITIZED_BRANCH').startswith('release') or os.getenv('SANITIZED_BRANCH') == 'develop': + fileLimits = False +if os.getenv('CI_PIPELINE_SOURCE') == 'schedule': + fileLimits = False +if os.getenv('USE_PRIVATE_IMAGES') == 1: + fileLimits = False + +# Read yaml file with variables +with open("template-vars.yaml", 'r') as stream: + templateVars = yaml.safe_load(stream) + templateVars['KASM_RELEASE'] = os.getenv('KASM_RELEASE') + templateVars['TEST_INSTALLER'] = os.getenv('TEST_INSTALLER') + templateVars['USE_PRIVATE_IMAGES'] = os.getenv('USE_PRIVATE_IMAGES') + templateVars['BASE_TAG'] = os.getenv('BASE_TAG') + templateVars['FILE_LIMITS'] = fileLimits + +# Read template file +with open("gitlab-ci.template", 'r') as stream: + template = stream.read() + +# Template the variables in +jinjaTemplate = Template(template) +gitlabCi = jinjaTemplate.render(templateVars) + +# Write out the gitlab file +with open('../gitlab-ci.yml', 'w') as out: + out.write(gitlabCi + '\n') diff --git a/ci-scripts/template-vars.yaml b/ci-scripts/template-vars.yaml new file mode 100644 index 0000000..63e9e94 --- /dev/null +++ b/ci-scripts/template-vars.yaml @@ -0,0 +1,624 @@ +files: &UNIVERSAL_CHANGE_FILES + - src/common/** + - ci-scripts/** + - .gitlab-ci.yml + +multiImages: + - name: audacity + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-audacity + changeFiles: + - dockerfile-kasm-audacity + - src/ubuntu/install/audacity/** + - name: chromium + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-chromium + changeFiles: + - dockerfile-kasm-chromium + - src/ubuntu/install/gtk/** + - src/ubuntu/install/chromium/** + - src/ubuntu/install/certificates/** + - name: deluge + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-deluge + changeFiles: + - dockerfile-kasm-deluge + - src/ubuntu/install/deluge/** + - name: doom + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-doom + changeFiles: + - dockerfile-kasm-doom + - src/ubuntu/install/doom/** + - name: filezilla + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-filezilla + changeFiles: + - dockerfile-kasm-filezilla + - src/ubuntu/install/filezilla/** + - name: firefox + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-firefox + changeFiles: + - dockerfile-kasm-firefox + - src/ubuntu/install/gtk/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/certificates/** + - name: gimp + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-gimp + changeFiles: + - dockerfile-kasm-gimp + - src/ubuntu/install/gimp/** + - name: inkscape + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-inkscape + changeFiles: + - dockerfile-kasm-inkscape + - src/ubuntu/install/inkscape/** + - name: java-dev + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-java-dev + changeFiles: + - dockerfile-kasm-java-dev + - src/ubuntu/install/vs_code/** + - src/ubuntu/install/tools/** + - src/ubuntu/install/sublime_text/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/misc/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/chrome/** + - src/ubuntu/install/eclipse/** + - name: libre-office + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-libre-office + changeFiles: + - dockerfile-kasm-libre-office + - src/ubuntu/install/libre_office/** + - name: opensuse-15-desktop + base: core-opensuse-15 + dockerfile: dockerfile-kasm-opensuse-15-desktop + changeFiles: + - dockerfile-kasm-opensuse-15-desktop + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/nextcloud/** + - src/ubuntu/install/langpacks/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - src/ubuntu/install/chrome/** + - src/opensuse/install/** + - name: oracle-8-desktop + base: core-oracle-8 + dockerfile: dockerfile-kasm-oracle-8-desktop + changeFiles: + - dockerfile-kasm-oracle-8-desktop + - src/oracle/install/** + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/nextcloud/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - name: pinta + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-pinta + changeFiles: + - dockerfile-kasm-pinta + - src/ubuntu/install/pinta/** + - name: qbittorrent + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-qbittorrent + changeFiles: + - dockerfile-kasm-qbittorrent + - src/ubuntu/install/qbittorrent/** + - name: remmina + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-remmina + changeFiles: + - dockerfile-kasm-remmina + - src/ubuntu/install/remmina/** + - name: sublime-text + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-sublime-text + changeFiles: + - dockerfile-kasm-sublime-text + - src/ubuntu/install/sublime_text/** + - name: telegram + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-telegram + changeFiles: + - dockerfile-kasm-telegram + - src/ubuntu/install/telegram/** + - name: terminal + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-terminal + changeFiles: + - dockerfile-kasm-terminal + - src/ubuntu/install/terraform/** + - src/ubuntu/install/ansible/** + - src/ubuntu/install/terminal/** + - name: thunderbird + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-thunderbird + changeFiles: + - dockerfile-kasm-thunderbird + - src/ubuntu/install/thunderbird/** + - name: tor-browser + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-tor-browser + changeFiles: + - dockerfile-kasm-tor-browser + - src/ubuntu/install/gtk/** + - src/ubuntu/install/torbrowser/** + - name: ubuntu-focal-desktop + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-ubuntu-focal-desktop + changeFiles: + - dockerfile-kasm-ubuntu-focal-desktop + - src/ubuntu/install/zoom/** + - src/ubuntu/install/vs_code/** + - src/ubuntu/install/tools/** + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/terraform/** + - src/ubuntu/install/telegram/** + - src/ubuntu/install/sublime_text/** + - src/ubuntu/install/signal/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/only_office/** + - src/ubuntu/install/obs/** + - src/ubuntu/install/nextcloud/** + - src/ubuntu/install/misc/** + - src/ubuntu/install/gimp/** + - src/ubuntu/install/gamepad_utils/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - src/ubuntu/install/ansible/** + - src/ubuntu/install/chrome/** + - name: ubuntu-jammy-desktop + base: core-ubuntu-jammy + dockerfile: dockerfile-kasm-ubuntu-jammy-desktop + changeFiles: + - dockerfile-kasm-ubuntu-jammy-desktop + - src/ubuntu/install/zoom/** + - src/ubuntu/install/vs_code/** + - src/ubuntu/install/tools/** + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/terraform/** + - src/ubuntu/install/telegram/** + - src/ubuntu/install/sublime_text/** + - src/ubuntu/install/signal/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/only_office/** + - src/ubuntu/install/obs/** + - src/ubuntu/install/nextcloud/** + - src/ubuntu/install/misc/** + - src/ubuntu/install/gimp/** + - src/ubuntu/install/gamepad_utils/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - src/ubuntu/install/ansible/** + - src/ubuntu/install/chrome/** + - name: vlc + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-vlc + changeFiles: + - dockerfile-kasm-vlc + - src/ubuntu/install/vlc/** + - name: vs-code + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-vs-code + changeFiles: + - dockerfile-kasm-vs-code + - src/ubuntu/install/vs_code/** + - name: almalinux-8-desktop + base: core-almalinux-8 + dockerfile: dockerfile-kasm-almalinux-8-desktop + changeFiles: + - dockerfile-kasm-almalinux-8-desktop + - src/oracle/install/** + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/nextcloud/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - name: almalinux-9-desktop + base: core-almalinux-9 + dockerfile: dockerfile-kasm-almalinux-9-desktop + changeFiles: + - dockerfile-kasm-almalinux-9-desktop + - src/oracle/install/** + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - name: alpine-317-desktop + base: core-alpine-317 + dockerfile: dockerfile-kasm-alpine-317-desktop + changeFiles: + - dockerfile-kasm-alpine-317-desktop + - src/ubuntu/install/langpacks/** + - src/ubuntu/install/cleanup/** + - src/alpine/install/** + - name: alpine-318-desktop + base: core-alpine-318 + dockerfile: dockerfile-kasm-alpine-318-desktop + changeFiles: + - dockerfile-kasm-alpine-318-desktop + - src/ubuntu/install/langpacks/** + - src/ubuntu/install/cleanup/** + - src/alpine/install/** + - name: brave + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-brave + changeFiles: + - dockerfile-kasm-brave + - src/ubuntu/install/gtk/** + - src/ubuntu/install/brave/** + - name: debian-bullseye-desktop + base: core-debian-bullseye + dockerfile: dockerfile-kasm-debian-bullseye-desktop + changeFiles: + - dockerfile-kasm-debian-bullseye-desktop + - src/ubuntu/install/zoom/** + - src/ubuntu/install/vs_code/** + - src/ubuntu/install/tools/** + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/terraform/** + - src/ubuntu/install/telegram/** + - src/ubuntu/install/sublime_text/** + - src/ubuntu/install/signal/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/only_office/** + - src/ubuntu/install/obs/** + - src/ubuntu/install/gimp/** + - src/ubuntu/install/gamepad_utils/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - src/ubuntu/install/ansible/** + - src/ubuntu/install/chrome/** + - name: debian-bookworm-desktop + base: core-debian-bookworm + dockerfile: dockerfile-kasm-debian-bookworm-desktop + changeFiles: + - dockerfile-kasm-debian-bookworm-desktop + - src/ubuntu/install/zoom/** + - src/ubuntu/install/vs_code/** + - src/ubuntu/install/tools/** + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/terraform/** + - src/ubuntu/install/telegram/** + - src/ubuntu/install/sublime_text/** + - src/ubuntu/install/signal/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/only_office/** + - src/ubuntu/install/obs/** + - src/ubuntu/install/gimp/** + - src/ubuntu/install/gamepad_utils/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - src/ubuntu/install/ansible/** + - src/ubuntu/install/chrome/** + - name: fedora-37-desktop + base: core-fedora-37 + dockerfile: dockerfile-kasm-fedora-37-desktop + changeFiles: + - dockerfile-kasm-fedora-37-desktop + - src/oracle/install/** + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - name: fedora-38-desktop + base: core-fedora-38 + dockerfile: dockerfile-kasm-fedora-38-desktop + changeFiles: + - dockerfile-kasm-fedora-38-desktop + - src/oracle/install/** + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - name: kali-rolling-desktop + base: core-kali-rolling + dockerfile: dockerfile-kasm-kali-rolling-desktop + changeFiles: + - dockerfile-kasm-kali-rolling-desktop + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - name: minetest + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-minetest + changeFiles: + - dockerfile-kasm-minetest + - src/ubuntu/install/minetest/** + - name: oracle-9-desktop + base: core-oracle-9 + dockerfile: dockerfile-kasm-oracle-9-desktop + changeFiles: + - dockerfile-kasm-oracle-9-desktop + - src/oracle/install/** + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - name: parrotos-5-desktop + base: core-parrotos-5 + dockerfile: dockerfile-kasm-parrotos-5-desktop + changeFiles: + - dockerfile-kasm-parrotos-5-desktop + - src/ubuntu/install/parrot/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - name: retroarch + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-retroarch + changeFiles: + - dockerfile-kasm-retroarch + - src/ubuntu/install/retroarch/** + - name: rockylinux-8-desktop + base: core-rockylinux-8 + dockerfile: dockerfile-kasm-rockylinux-8-desktop + changeFiles: + - dockerfile-kasm-rockylinux-8-desktop + - src/oracle/install/** + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/nextcloud/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - name: rockylinux-9-desktop + base: core-rockylinux-9 + dockerfile: dockerfile-kasm-rockylinux-9-desktop + changeFiles: + - dockerfile-kasm-rockylinux-9-desktop + - src/oracle/install/** + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - name: super-tux-kart + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-super-tux-kart + changeFiles: + - dockerfile-kasm-super-tux-kart + - src/ubuntu/install/super_tux_kart/** + - name: ubuntu-focal-dind + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-ubuntu-focal-dind + changeFiles: + - dockerfile-kasm-ubuntu-focal-dind + - src/ubuntu/install/vs_code/** + - src/ubuntu/install/tools/** + - src/ubuntu/install/sublime_text/** + - src/ubuntu/install/misc/** + - src/ubuntu/install/dind/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - src/ubuntu/install/chrome/** + - name: ubuntu-focal-dind-rootless + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-ubuntu-focal-dind-rootless + changeFiles: + - dockerfile-kasm-ubuntu-focal-dind-rootless + - src/ubuntu/install/vs_code/** + - src/ubuntu/install/tools/** + - src/ubuntu/install/sublime_text/** + - src/ubuntu/install/misc/** + - src/ubuntu/install/dind_rootless/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - src/ubuntu/install/chrome/** + - name: ubuntu-jammy-dind + base: core-ubuntu-jammy + dockerfile: dockerfile-kasm-ubuntu-jammy-dind + changeFiles: + - dockerfile-kasm-ubuntu-jammy-dind + - src/ubuntu/install/vs_code/** + - src/ubuntu/install/tools/** + - src/ubuntu/install/sublime_text/** + - src/ubuntu/install/misc/** + - src/ubuntu/install/dind/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - src/ubuntu/install/chrome/** + - name: ubuntu-jammy-dind-rootless + base: core-ubuntu-jammy + dockerfile: dockerfile-kasm-ubuntu-jammy-dind-rootless + changeFiles: + - dockerfile-kasm-ubuntu-jammy-dind-rootless + - src/ubuntu/install/vs_code/** + - src/ubuntu/install/vs_code/** + - src/ubuntu/install/tools/** + - src/ubuntu/install/sublime_text/** + - src/ubuntu/install/misc/** + - src/ubuntu/install/dind_rootless/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - src/ubuntu/install/chrome/** + - name: vivaldi + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-vivaldi + changeFiles: + - dockerfile-kasm-vivaldi + - src/ubuntu/install/gtk/** + - src/ubuntu/install/certificates/** + - src/ubuntu/install/vivaldi/** +singleImages: + - name: atom + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-atom + changeFiles: + - dockerfile-kasm-atom + - src/ubuntu/install/atom/** + - name: blender + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-blender + changeFiles: + - dockerfile-kasm-blender + - src/ubuntu/install/blender/** + - name: centos-7-desktop + base: core-centos-7 + dockerfile: dockerfile-kasm-centos-7-desktop + changeFiles: + - dockerfile-kasm-centos-7-desktop + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chrome/** + - name: chrome + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-chrome + changeFiles: + - dockerfile-kasm-chrome + - src/ubuntu/install/gtk/** + - src/ubuntu/install/certificates/** + - src/ubuntu/install/chrome/** + - name: desktop + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-desktop + changeFiles: + - dockerfile-kasm-desktop + - src/ubuntu/install/firefox/** + - src/ubuntu/install/certificates/** + - src/ubuntu/install/chrome/** + - name: desktop-deluxe + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-desktop-deluxe + changeFiles: + - dockerfile-kasm-desktop-deluxe + - src/ubuntu/install/zoom/** + - src/ubuntu/install/vs_code/** + - src/ubuntu/install/tools/** + - src/ubuntu/install/terraform/** + - src/ubuntu/install/telegram/** + - src/ubuntu/install/sublime_text/** + - src/ubuntu/install/signal/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/only_office/** + - src/ubuntu/install/obs/** + - src/ubuntu/install/nextcloud/** + - src/ubuntu/install/misc/** + - src/ubuntu/install/gimp/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/ansible/** + - src/ubuntu/install/chrome/** + - name: discord + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-discord + changeFiles: + - dockerfile-kasm-discord + - src/ubuntu/install/discord/** + - name: edge + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-edge + changeFiles: + - dockerfile-kasm-edge + - src/ubuntu/install/gtk/** + - src/ubuntu/install/edge/** + - name: hunchly + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-hunchly + changeFiles: + - dockerfile-kasm-hunchly + - src/ubuntu/install/chrome/** + - src/ubuntu/install/hunchly/** + - name: insomnia + base: core-ubuntu-jammy + dockerfile: dockerfile-kasm-insomnia + changeFiles: + - dockerfile-kasm-insomnia + - src/ubuntu/install/insomnia/** + - name: maltego + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-maltego + changeFiles: + - dockerfile-kasm-maltego + - src/ubuntu/install/maltego/** + - src/ubuntu/install/firefox/** + - name: only-office + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-only-office + changeFiles: + - dockerfile-kasm-only-office + - name: oracle-7-desktop + base: core-oracle-7 + dockerfile: dockerfile-kasm-oracle-7-desktop + changeFiles: + - dockerfile-kasm-oracle-7-desktop + - src/oracle/install/** + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/remmina/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chrome/** + - name: postman + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-postman + changeFiles: + - dockerfile-kasm-postman + - src/ubuntu/install/chrome/** + - src/ubuntu/install/postman/** + - name: remnux-focal-desktop + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-remnux-focal-desktop + changeFiles: + - dockerfile-kasm-remnux-focal-desktop + - src/ubuntu/install/firefox/** + - src/ubuntu/install/remnux/** + - name: signal + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-signal + changeFiles: + - dockerfile-kasm-signal + - src/ubuntu/install/signal/** + - name: steam + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-steam + changeFiles: + - dockerfile-kasm-steam + - src/ubuntu/install/steam/** + - name: tracelabs + base: core-kali-rolling + dockerfile: dockerfile-kasm-tracelabs + changeFiles: + - dockerfile-kasm-tracelabs + - src/ubuntu/install/kali/** + - src/ubuntu/install/firefox/** + - src/ubuntu/install/tracelabs/** + - name: unityhub + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-unityhub + changeFiles: + - dockerfile-kasm-unityhub + - src/ubuntu/install/misc/** + - src/ubuntu/install/chrome/** + - src/ubuntu/install/unityhub/** + - name: zoom + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-zoom + changeFiles: + - dockerfile-kasm-zoom + - src/ubuntu/install/zoom/** + - src/ubuntu/install/chrome/** + - name: zsnes + base: core-ubuntu-focal + dockerfile: dockerfile-kasm-zsnes + changeFiles: + - dockerfile-kasm-zsnes + - src/ubuntu/install/zsnes/** diff --git a/ci-scripts/test.sh b/ci-scripts/test.sh index e2dc1e5..c107d31 100755 --- a/ci-scripts/test.sh +++ b/ci-scripts/test.sh @@ -2,12 +2,12 @@ set -e ## Parse input ## -NAME=$(echo $1| awk -F'|' '{print $1}') -BASE=$(echo $1| awk -F'|' '{print $2}') -DOCKERFILE=$(echo $1| awk -F'|' '{print $3}') -ARCH=$2 -AWS_ID=$3 -AWS_KEY=$4 +NAME=$1 +BASE=$2 +DOCKERFILE=$3 +ARCH=$4 +AWS_ID=$5 +AWS_KEY=$6 # Setup aws cli export AWS_ACCESS_KEY_ID="${AWS_ID}" diff --git a/src/ubuntu/install/firefox/install_firefox.sh b/src/ubuntu/install/firefox/install_firefox.sh index 9a50d61..5245862 100644 --- a/src/ubuntu/install/firefox/install_firefox.sh +++ b/src/ubuntu/install/firefox/install_firefox.sh @@ -88,7 +88,7 @@ else elif grep -q "ID=debian" /etc/os-release || grep -q "ID=kali" /etc/os-release || grep -q "ID=parrot" /etc/os-release; then echo "Firefox flash player not supported on Debian" elif ! grep -q Jammy /etc/os-release; then - # Plugin to support running flash videos for sites like vimeo + # Plugin to support running flash videos for sites like vimeo apt-get update apt-get install -y browser-plugin-freshplayer-pepperflash apt-mark hold firefox diff --git a/src/ubuntu/install/tracelabs/install_tracelabs.sh b/src/ubuntu/install/tracelabs/install_tracelabs.sh index 2d73841..86b06b0 100644 --- a/src/ubuntu/install/tracelabs/install_tracelabs.sh +++ b/src/ubuntu/install/tracelabs/install_tracelabs.sh @@ -16,6 +16,8 @@ apt-get install -y \ legion \ ophcrack \ ophcrack-cli \ + python3-greenlet \ + python3-zope.event \ sqlitebrowser cd /tmp/ @@ -33,14 +35,13 @@ mv /etc/skel/Desktop/*.pdf $HOME/Desktop/ #### Install all tracelabs image packages #### # rm lines with # | Delete Empty lines | cat kali-config/variant-tracelabs/package-lists/kali.list.chroot | sed '/^#/d' | sed '/^$/d' | xargs --no-run-if-empty apt-get install -y - +sed -i '/m4ll0k/,+3d' kali-config/common/hooks/normal/osint-packages.chroot sh kali-config/common/hooks/normal/osint-packages.chroot chown -R 1000:1000 \ /usr/share/phoneinfoga \ /usr/share/Spiderpig \ /usr/share/DumpsterDiver \ - /usr/share/Infoga \ /usr/share/LittleBrother \ /usr/share/sn0int \ /usr/share/buster \ @@ -53,8 +54,6 @@ chown -R 1000:1000 \ apt-get install -y python3-pip -pip3 install --break-system-packages --force-reinstall zope.event - sed -i 's/sudo //g' /usr/share/applications/tl*.desktop ### Remove stuff we install later properly