From c078a23be3e6a2e541d0757b78d9ad7f1c3b878f Mon Sep 17 00:00:00 2001 From: thelamer Date: Tue, 15 Feb 2022 19:41:01 -0800 Subject: [PATCH] rebase to jammy for 1.0 add right click menu and title --- .github/workflows/external_trigger.yml | 80 +------------------------- Dockerfile | 31 +++++----- Dockerfile.aarch64 | 31 +++++----- Dockerfile.armhf | 31 +++++----- Jenkinsfile | 14 ++--- README.md | 1 + jenkins-vars.yml | 3 +- readme-vars.yml | 1 + root/defaults/menu.xml | 8 +++ root/etc/cont-init.d/56-openboxcopy | 7 +++ 10 files changed, 77 insertions(+), 130 deletions(-) create mode 100644 root/defaults/menu.xml create mode 100644 root/etc/cont-init.d/56-openboxcopy diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index e44fbfd..451a0fd 100755 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -12,81 +12,5 @@ jobs: - name: External Trigger if: github.ref == 'refs/heads/master' run: | - if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_DOUBLECOMMANDER_MASTER }}" ]; then - echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_DOUBLECOMMANDER_MASTER is set; skipping trigger. ****" - exit 0 - fi - echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_DOUBLECOMMANDER_MASTER\". ****" - echo "**** Retrieving external version ****" - EXT_RELEASE=$(curl -sX GET http://archive.ubuntu.com/ubuntu/dists/focal/universe/binary-amd64/Packages.gz | gunzip |grep -A 7 -m 1 'Package: doublecmd-gtk' | awk -F ': ' '/Version/{print $2;exit}') - if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then - echo "**** Can't retrieve external version, exiting ****" - FAILURE_REASON="Can't retrieve external version for doublecommander branch master" - GHA_TRIGGER_URL="https://github.com/linuxserver/docker-doublecommander/actions/runs/${{ github.run_id }}" - curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680, - "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}], - "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} - exit 1 - fi - EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g') - echo "**** External version: ${EXT_RELEASE} ****" - echo "**** Retrieving last pushed version ****" - image="linuxserver/doublecommander" - tag="latest" - token=$(curl -sX GET \ - "https://ghcr.io/token?scope=repository%3Alinuxserver%2Fdoublecommander%3Apull" \ - | jq -r '.token') - multidigest=$(curl -s \ - --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ - --header "Authorization: Bearer ${token}" \ - "https://ghcr.io/v2/${image}/manifests/${tag}" \ - | jq -r 'first(.manifests[].digest)') - digest=$(curl -s \ - --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ - --header "Authorization: Bearer ${token}" \ - "https://ghcr.io/v2/${image}/manifests/${multidigest}" \ - | jq -r '.config.digest') - image_info=$(curl -sL \ - --header "Authorization: Bearer ${token}" \ - "https://ghcr.io/v2/${image}/blobs/${digest}" \ - | jq -r '.container_config') - IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}') - IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}') - if [ -z "${IMAGE_VERSION}" ]; then - echo "**** Can't retrieve last pushed version, exiting ****" - FAILURE_REASON="Can't retrieve last pushed version for doublecommander tag latest" - curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680, - "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}], - "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} - exit 1 - fi - echo "**** Last pushed version: ${IMAGE_VERSION} ****" - if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then - echo "**** Version ${EXT_RELEASE} already pushed, exiting ****" - exit 0 - elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-doublecommander/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then - echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****" - exit 0 - else - echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****" - response=$(curl -iX POST \ - https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-doublecommander/job/master/buildWithParameters?PACKAGE_CHECK=false \ - --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") - echo "**** Jenkins job queue url: ${response%$'\r'} ****" - echo "**** Sleeping 10 seconds until job starts ****" - sleep 10 - buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url') - buildurl="${buildurl%$'\r'}" - echo "**** Jenkins job build url: ${buildurl} ****" - echo "**** Attempting to change the Jenkins job description ****" - curl -iX POST \ - "${buildurl}submitDescription" \ - --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ - --data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ - --data-urlencode "Submit=Submit" - echo "**** Notifying Discord ****" - TRIGGER_REASON="A version change was detected for doublecommander tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}" - curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, - "description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}], - "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} - fi + echo "**** No external release, exiting ****" + exit 0 diff --git a/Dockerfile b/Dockerfile index 74cfc49..06dd512 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-rdesktop-web:focal +FROM ghcr.io/linuxserver/baseimage-rdesktop-web:jammy # set version label ARG BUILD_DATE @@ -7,20 +7,23 @@ ARG DOUBLECOMMANDER_VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="thelamer" +# title +ENV TITLE=DoubleCommander + RUN \ - echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y \ - doublecmd-gtk \ - doublecmd-plugins \ - libsmbclient \ - libssh2-1 && \ - echo "**** cleanup ****" && \ - apt-get clean && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* + echo "**** install packages ****" && \ + apt-get update && \ + apt-get install -y \ + doublecmd-gtk \ + doublecmd-plugins \ + libsmbclient \ + libssh2-1 && \ + echo "**** cleanup ****" && \ + apt-get clean && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/* # add local files COPY /root / diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 19900b1..281013d 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-rdesktop-web:arm64v8-focal +FROM ghcr.io/linuxserver/baseimage-rdesktop-web:arm64v8-jammy # set version label ARG BUILD_DATE @@ -7,20 +7,23 @@ ARG DOUBLECOMMANDER_VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="thelamer" +# title +ENV TITLE=DoubleCommander + RUN \ - echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y \ - doublecmd-gtk \ - doublecmd-plugins \ - libsmbclient \ - libssh2-1 && \ - echo "**** cleanup ****" && \ - apt-get clean && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* + echo "**** install packages ****" && \ + apt-get update && \ + apt-get install -y \ + doublecmd-gtk \ + doublecmd-plugins \ + libsmbclient \ + libssh2-1 && \ + echo "**** cleanup ****" && \ + apt-get clean && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/* # add local files COPY /root / diff --git a/Dockerfile.armhf b/Dockerfile.armhf index a95b69c..daf78b5 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-rdesktop-web:arm32v7-focal +FROM ghcr.io/linuxserver/baseimage-rdesktop-web:arm32v7-jammy # set version label ARG BUILD_DATE @@ -7,20 +7,23 @@ ARG DOUBLECOMMANDER_VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="thelamer" +# title +ENV TITLE=DoubleCommander + RUN \ - echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y \ - doublecmd-gtk \ - doublecmd-plugins \ - libsmbclient \ - libssh2-1 && \ - echo "**** cleanup ****" && \ - apt-get clean && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* + echo "**** install packages ****" && \ + apt-get update && \ + apt-get install -y \ + doublecmd-gtk \ + doublecmd-plugins \ + libsmbclient \ + libssh2-1 && \ + echo "**** cleanup ****" && \ + apt-get clean && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/* # add local files COPY /root / diff --git a/Jenkinsfile b/Jenkinsfile index 654bd90..3aa1633 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -99,14 +99,12 @@ pipeline { /* ######################## External Release Tagging ######################## */ - // If this is a custom command to determine version use that command - stage("Set tag custom bash"){ + // If this is an os release set release type to none to indicate no external release + stage("Set ENV os"){ steps{ script{ - env.EXT_RELEASE = sh( - script: ''' curl -sX GET http://archive.ubuntu.com/ubuntu/dists/focal/universe/binary-amd64/Packages.gz | gunzip |grep -A 7 -m 1 'Package: doublecmd-gtk' | awk -F ': ' '/Version/{print $2;exit}' ''', - returnStdout: true).trim() - env.RELEASE_LINK = 'custom_command' + env.EXT_RELEASE = env.PACKAGE_TAG + env.RELEASE_LINK = 'none' } } } @@ -909,11 +907,11 @@ pipeline { "tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' ''' echo "Pushing New release for Tag" sh '''#! /bin/bash - echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json + echo "Updating base packages to ${PACKAGE_TAG}" > releasebody.json echo '{"tag_name":"'${META_TAG}'",\ "target_commitish": "master",\ "name": "'${META_TAG}'",\ - "body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start + "body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**OS Changes:**\\n\\n' > start printf '","draft": false,"prerelease": false}' >> releasebody.json paste -d'\\0' start releasebody.json > releasebody.json.done curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done''' diff --git a/README.md b/README.md index 4b010af..c2f7abb 100644 --- a/README.md +++ b/README.md @@ -230,5 +230,6 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **15.02.21:** - Rebase to Ubuntu Jammy. * **14.12.21:** - Rebase to Ubuntu focal. * **25.03.20:** - Initial release. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 9c3f160..b2389f3 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -2,8 +2,7 @@ # jenkins variables project_name: docker-doublecommander -external_type: na -custom_version_command: "curl -sX GET http://archive.ubuntu.com/ubuntu/dists/focal/universe/binary-amd64/Packages.gz | gunzip |grep -A 7 -m 1 'Package: doublecmd-gtk' | awk -F ': ' '/Version/{print $2;exit}'" +external_type: os release_type: stable release_tag: latest ls_branch: master diff --git a/readme-vars.yml b/readme-vars.yml index e096909..98a9722 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -44,5 +44,6 @@ app_setup_block: | # changelog changelogs: + - { date: "15.02.21:", desc: "Rebase to Ubuntu Jammy." } - { date: "14.12.21:", desc: "Rebase to Ubuntu focal." } - { date: "25.03.20:", desc: "Initial release." } diff --git a/root/defaults/menu.xml b/root/defaults/menu.xml new file mode 100644 index 0000000..1ece269 --- /dev/null +++ b/root/defaults/menu.xml @@ -0,0 +1,8 @@ + + + +/usr/bin/xterm +/usr/bin/doublecmd + + + diff --git a/root/etc/cont-init.d/56-openboxcopy b/root/etc/cont-init.d/56-openboxcopy new file mode 100644 index 0000000..f22df65 --- /dev/null +++ b/root/etc/cont-init.d/56-openboxcopy @@ -0,0 +1,7 @@ +#!/usr/bin/with-contenv bash + +# default file copies first run +[[ ! -f /config/.config/openbox/menu.xml ]] && \ + mkdir -p /config/.config/openbox && \ + cp /defaults/menu.xml /config/.config/openbox/menu.xml && \ + chown -R abc:abc /config/.config