From 26ec3ec493b1dd7a456f8662c9aec0533619cf9e Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 29 May 2024 22:43:36 +0600 Subject: [PATCH] add first version of ssh-agent publishing --- .github/workflows/docker-publish.yml | 21 ++++++++++++++++++++- deploy | 11 ++++++----- ssh-agent/Dockerfile | 20 ++++++++++++++++++++ ssh-agent/autoupdate.sh | 11 +++++++++++ ssh-agent/deploy | 19 +++++++++++++++++++ 5 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 ssh-agent/Dockerfile create mode 100755 ssh-agent/autoupdate.sh create mode 100755 ssh-agent/deploy diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 66ae9b4..5777df6 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -4,7 +4,7 @@ on: branches: - master jobs: - publishing: + publish_jenkins: runs-on: ubuntu-latest permissions: contents: read @@ -21,3 +21,22 @@ jobs: run: ./autoupdate.sh - name: Deploy run: ./deploy + publish_jenkins_ssh-agent: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout repository + uses: actions/checkout@v2 + - name: Log into registry + uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c + with: + username: ${{ secrets.DOCKER_LOGIN }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Update version + working-directory: ./ssh-agent/ + run: ./autoupdate.sh + - name: Deploy + working-directory: ./ssh-agent/ + run: ./deploy diff --git a/deploy b/deploy index b8c3fb6..c1fa290 100755 --- a/deploy +++ b/deploy @@ -10,9 +10,10 @@ function assert_success() { } version="2.426.1" +image_name=jenkins -assert_success docker build -t jenkins:$version ./ -assert_success docker tag jenkins:$version insanusmokrassar/jenkins:$version -assert_success docker tag jenkins:$version insanusmokrassar/jenkins:latest -assert_success docker push insanusmokrassar/jenkins:$version -assert_success docker push insanusmokrassar/jenkins:latest +assert_success docker build -t $image_name:$version ./ +assert_success docker tag $image_name:$version insanusmokrassar/$image_name:$version +assert_success docker tag $image_name:$version insanusmokrassar/$image_name:latest +assert_success docker push insanusmokrassar/$image_name:$version +assert_success docker push insanusmokrassar/$image_name:latest diff --git a/ssh-agent/Dockerfile b/ssh-agent/Dockerfile new file mode 100644 index 0000000..9fc18d4 --- /dev/null +++ b/ssh-agent/Dockerfile @@ -0,0 +1,20 @@ +FROM jenkins/ssh-agent:5.38.0-debian-jdk17 as ssh-agent + +LABEL maintainer="ovsyannikov.alexey95@gmail.com" + +USER root + +RUN mv /bin/sh /bin/sh.old && ln -s /bin/bash /bin/sh + +ENV TZ=Etc/GMT +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone +RUN apt update && apt -y install wget gnupg2 zip unzip curl sudo git software-properties-common pass axel + +RUN chmod 777 /tmp + +USER jenkins + +RUN curl -s "https://get.sdkman.io" | bash +RUN source "$HOME/.sdkman/bin/sdkman-init.sh" &&\ + sdk install java `sdk ls java | grep librca | grep " 17" | grep -m 1 -Eo "(.?[0-9]{1,2}){3}" | head -1`-librca &&\ + sdk default java `sdk ls java | grep librca | grep " 17" | grep -m 1 -Eo "(.?[0-9]{1,2}){3}" | head -1`-librca diff --git a/ssh-agent/autoupdate.sh b/ssh-agent/autoupdate.sh new file mode 100755 index 0000000..b881f42 --- /dev/null +++ b/ssh-agent/autoupdate.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +if [ -z "$1" ]; then + newVersion="5.38.0" +else + newVersion="$1" +fi + +sed -i -E "s/ssh-agent:[0-9\.]+/ssh-agent:${newVersion}/g" Dockerfile +sed -i -E "s/version=\"[0-9\.]+\"/version=\"${newVersion}\"/g" deploy + diff --git a/ssh-agent/deploy b/ssh-agent/deploy new file mode 100755 index 0000000..908fc98 --- /dev/null +++ b/ssh-agent/deploy @@ -0,0 +1,19 @@ +#!/bin/bash + +function assert_success() { + "${@}" + local status=${?} + if [ ${status} -ne 0 ]; then + echo "### Error ${status} at: ${BASH_LINENO[*]} ###" + exit ${status} + fi +} + +version="5.38.0" +image_name=jenkins-ssh-agent + +assert_success docker build -t $image_name:$version ./ +assert_success docker tag $image_name:$version insanusmokrassar/$image_name:$version +assert_success docker tag $image_name:$version insanusmokrassar/$image_name:latest +assert_success docker push insanusmokrassar/$image_name:$version +assert_success docker push insanusmokrassar/$image_name:latest