mirror of
https://github.com/linuxserver/docker-code-server
synced 2025-06-26 18:27:40 +00:00
Compare commits
13 Commits
2.1650-vsc
...
2.1637-vsc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
34b26c56c7 | ||
|
|
b4dc85eef0 | ||
|
|
8655d63538 | ||
|
|
2fd1e8b457 | ||
|
|
1a822f0c81 | ||
|
|
99ba918570 | ||
|
|
f06dca6272 | ||
|
|
a629cfb790 | ||
|
|
732b1ca922 | ||
|
|
c1faf7ecbe | ||
|
|
35b8e16e5f | ||
|
|
ed4efdca09 | ||
|
|
6bf1eb5d73 |
@@ -14,20 +14,21 @@ RUN \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
git \
|
||||
jq \
|
||||
nano \
|
||||
net-tools \
|
||||
sudo && \
|
||||
echo "**** install code-server ****" && \
|
||||
if [ -z ${CODE_RELEASE+x} ]; then \
|
||||
CODE_RELEASE=$(curl -sX GET "https://api.github.com/repos/cdr/code-server/releases/latest" \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
|
||||
CODE_RELEASE=$(curl -sX GET "https://api.github.com/repos/cdr/code-server/releases" \
|
||||
| jq -r 'first(.[] | select(.prerelease == true)) | .tag_name'); \
|
||||
fi && \
|
||||
curl -o \
|
||||
/tmp/code.tar.gz -L \
|
||||
"https://github.com/cdr/code-server/releases/download/${CODE_RELEASE}/code-server${CODE_RELEASE}-linux-x86_64.tar.gz" && \
|
||||
tar xzf /tmp/code.tar.gz -C \
|
||||
/usr/bin/ --strip-components=1 \
|
||||
--wildcards code-server*/code-server && \
|
||||
--wildcards code-server*/code-server && \
|
||||
echo "**** clean up ****" && \
|
||||
rm -rf \
|
||||
/tmp/* \
|
||||
|
||||
90
Jenkinsfile
vendored
90
Jenkinsfile
vendored
@@ -14,9 +14,8 @@ pipeline {
|
||||
environment {
|
||||
BUILDS_DISCORD=credentials('build_webhook_url')
|
||||
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
|
||||
EXT_GIT_BRANCH = 'master'
|
||||
EXT_USER = 'cdr'
|
||||
EXT_REPO = 'code-server'
|
||||
JSON_URL = 'https://api.github.com/repos/cdr/code-server/releases'
|
||||
JSON_PATH = 'first(.[] | select(.prerelease == true)) | .tag_name'
|
||||
CONTAINER_NAME = 'code-server'
|
||||
BUILD_VERSION_ARG = 'CODE_RELEASE'
|
||||
LS_USER = 'linuxserver'
|
||||
@@ -42,7 +41,7 @@ pipeline {
|
||||
script{
|
||||
env.EXIT_STATUS = ''
|
||||
env.LS_RELEASE = sh(
|
||||
script: '''docker run --rm alexeiled/skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':latest 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
|
||||
script: '''docker run --rm alexeiled/skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':development 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
|
||||
returnStdout: true).trim()
|
||||
env.LS_RELEASE_NOTES = sh(
|
||||
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
|
||||
@@ -99,21 +98,14 @@ pipeline {
|
||||
/* ########################
|
||||
External Release Tagging
|
||||
######################## */
|
||||
// If this is a stable github release use the latest endpoint from github to determine the ext tag
|
||||
stage("Set ENV github_stable"){
|
||||
// If this is a custom json endpoint parse the return to get external tag
|
||||
stage("Set ENV custom_json"){
|
||||
steps{
|
||||
script{
|
||||
env.EXT_RELEASE = sh(
|
||||
script: '''curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. | .tag_name' ''',
|
||||
script: '''curl -s ${JSON_URL} | jq -r ". | ${JSON_PATH}" ''',
|
||||
returnStdout: true).trim()
|
||||
}
|
||||
}
|
||||
}
|
||||
// If this is a stable or devel github release generate the link for the build message
|
||||
stage("Set ENV github_link"){
|
||||
steps{
|
||||
script{
|
||||
env.RELEASE_LINK = 'https://github.com/' + env.EXT_USER + '/' + env.EXT_REPO + '/releases/tag/' + env.EXT_RELEASE
|
||||
env.RELEASE_LINK = env.JSON_URL
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -127,10 +119,10 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
// If this is a master build use live docker endpoints
|
||||
// If this is a development build use live docker endpoints
|
||||
stage("Set ENV live build"){
|
||||
when {
|
||||
branch "master"
|
||||
branch "development"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
}
|
||||
steps {
|
||||
@@ -148,7 +140,7 @@ pipeline {
|
||||
// If this is a dev build use dev docker endpoints
|
||||
stage("Set ENV dev build"){
|
||||
when {
|
||||
not {branch "master"}
|
||||
not {branch "development"}
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
}
|
||||
steps {
|
||||
@@ -215,7 +207,7 @@ pipeline {
|
||||
// Use helper containers to render templated files
|
||||
stage('Update-Templates') {
|
||||
when {
|
||||
branch "master"
|
||||
branch "development"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
expression {
|
||||
env.CONTAINER_NAME != null
|
||||
@@ -226,7 +218,7 @@ pipeline {
|
||||
set -e
|
||||
TEMPDIR=$(mktemp -d)
|
||||
docker pull linuxserver/jenkins-builder:latest
|
||||
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest
|
||||
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=development -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest
|
||||
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
|
||||
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
|
||||
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
|
||||
@@ -234,7 +226,7 @@ pipeline {
|
||||
mkdir -p ${TEMPDIR}/repo
|
||||
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
|
||||
cd ${TEMPDIR}/repo/${LS_REPO}
|
||||
git checkout -f master
|
||||
git checkout -f development
|
||||
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
|
||||
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github
|
||||
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/
|
||||
@@ -266,7 +258,7 @@ pipeline {
|
||||
// Exit the build if the Templated files were just updated
|
||||
stage('Template-exit') {
|
||||
when {
|
||||
branch "master"
|
||||
branch "development"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'FILES_UPDATED', value: 'true'
|
||||
expression {
|
||||
@@ -365,7 +357,7 @@ pipeline {
|
||||
// Take the image we just built and dump package versions for comparison
|
||||
stage('Update-packages') {
|
||||
when {
|
||||
branch "master"
|
||||
branch "development"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
@@ -393,7 +385,7 @@ pipeline {
|
||||
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
|
||||
if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
|
||||
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
|
||||
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master
|
||||
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f development
|
||||
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
|
||||
cd ${TEMPDIR}/${LS_REPO}/
|
||||
wait
|
||||
@@ -417,7 +409,7 @@ pipeline {
|
||||
// Exit the build if the package file was just updated
|
||||
stage('PACKAGE-exit') {
|
||||
when {
|
||||
branch "master"
|
||||
branch "development"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'PACKAGE_UPDATED', value: 'true'
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
@@ -431,7 +423,7 @@ pipeline {
|
||||
// Exit the build if this is just a package check and there are no changes to push
|
||||
stage('PACKAGECHECK-exit') {
|
||||
when {
|
||||
branch "master"
|
||||
branch "development"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'PACKAGE_UPDATED', value: 'false'
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
@@ -516,12 +508,12 @@ pipeline {
|
||||
sh '''#! /bin/bash
|
||||
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
||||
'''
|
||||
sh "docker tag ${IMAGE}:${META_TAG} ${IMAGE}:latest"
|
||||
sh "docker push ${IMAGE}:latest"
|
||||
sh "docker tag ${IMAGE}:${META_TAG} ${IMAGE}:development"
|
||||
sh "docker push ${IMAGE}:development"
|
||||
sh "docker push ${IMAGE}:${META_TAG}"
|
||||
sh '''docker rmi \
|
||||
${IMAGE}:${META_TAG} \
|
||||
${IMAGE}:latest || :'''
|
||||
${IMAGE}:development || :'''
|
||||
|
||||
}
|
||||
}
|
||||
@@ -551,32 +543,32 @@ pipeline {
|
||||
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
|
||||
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
||||
fi'''
|
||||
sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-latest"
|
||||
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm32v7-latest"
|
||||
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-latest"
|
||||
sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-development"
|
||||
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm32v7-development"
|
||||
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-development"
|
||||
sh "docker push ${IMAGE}:amd64-${META_TAG}"
|
||||
sh "docker push ${IMAGE}:arm32v7-${META_TAG}"
|
||||
sh "docker push ${IMAGE}:arm64v8-${META_TAG}"
|
||||
sh "docker push ${IMAGE}:amd64-latest"
|
||||
sh "docker push ${IMAGE}:arm32v7-latest"
|
||||
sh "docker push ${IMAGE}:arm64v8-latest"
|
||||
sh "docker manifest push --purge ${IMAGE}:latest || :"
|
||||
sh "docker manifest create ${IMAGE}:latest ${IMAGE}:amd64-latest ${IMAGE}:arm32v7-latest ${IMAGE}:arm64v8-latest"
|
||||
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm32v7-latest --os linux --arch arm"
|
||||
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8"
|
||||
sh "docker push ${IMAGE}:amd64-development"
|
||||
sh "docker push ${IMAGE}:arm32v7-development"
|
||||
sh "docker push ${IMAGE}:arm64v8-development"
|
||||
sh "docker manifest push --purge ${IMAGE}:development || :"
|
||||
sh "docker manifest create ${IMAGE}:development ${IMAGE}:amd64-development ${IMAGE}:arm32v7-development ${IMAGE}:arm64v8-development"
|
||||
sh "docker manifest annotate ${IMAGE}:development ${IMAGE}:arm32v7-development --os linux --arch arm"
|
||||
sh "docker manifest annotate ${IMAGE}:development ${IMAGE}:arm64v8-development --os linux --arch arm64 --variant v8"
|
||||
sh "docker manifest push --purge ${IMAGE}:${META_TAG} || :"
|
||||
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
|
||||
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v7-${META_TAG} --os linux --arch arm"
|
||||
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8"
|
||||
sh "docker manifest push --purge ${IMAGE}:latest"
|
||||
sh "docker manifest push --purge ${IMAGE}:development"
|
||||
sh "docker manifest push --purge ${IMAGE}:${META_TAG}"
|
||||
sh '''docker rmi \
|
||||
${IMAGE}:amd64-${META_TAG} \
|
||||
${IMAGE}:amd64-latest \
|
||||
${IMAGE}:amd64-development \
|
||||
${IMAGE}:arm32v7-${META_TAG} \
|
||||
${IMAGE}:arm32v7-latest \
|
||||
${IMAGE}:arm32v7-development \
|
||||
${IMAGE}:arm64v8-${META_TAG} \
|
||||
${IMAGE}:arm64v8-latest \
|
||||
${IMAGE}:arm64v8-development \
|
||||
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
|
||||
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
|
||||
}
|
||||
@@ -585,7 +577,7 @@ pipeline {
|
||||
// If this is a public release tag it in the LS Github
|
||||
stage('Github-Tag-Push-Release') {
|
||||
when {
|
||||
branch "master"
|
||||
branch "development"
|
||||
expression {
|
||||
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
}
|
||||
@@ -597,17 +589,17 @@ pipeline {
|
||||
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
|
||||
-d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
|
||||
"object": "'${COMMIT_SHA}'",\
|
||||
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
|
||||
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to development",\
|
||||
"type": "commit",\
|
||||
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
|
||||
echo "Pushing New release for Tag"
|
||||
sh '''#! /bin/bash
|
||||
curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq '. |.body' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json
|
||||
echo "Data change at JSON endpoint ${JSON_URL}" > releasebody.json
|
||||
echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
|
||||
"target_commitish": "master",\
|
||||
"target_commitish": "development",\
|
||||
"name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
|
||||
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**'${EXT_REPO}' Changes:**\\n\\n' > start
|
||||
printf '","draft": false,"prerelease": false}' >> releasebody.json
|
||||
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**Remote Changes:**\\n\\n' > start
|
||||
printf '","draft": false,"prerelease": true}' >> 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'''
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ Find us at:
|
||||
- All intensive computation runs on your server.
|
||||
- You're no longer running excess instances of Chrome.
|
||||
|
||||
[](https://coder.com)
|
||||
[](https://coder.com)
|
||||
|
||||
## Supported Architectures
|
||||
|
||||
@@ -213,9 +213,6 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
||||
|
||||
## Versions
|
||||
|
||||
* **24.10.19:** - Upgrade to v2 builds.
|
||||
* **28.09.19:** - Update project logo.
|
||||
* **21.09.19:** - Add development builds/tag.
|
||||
* **09.07.19:** - Add optional sudo access.
|
||||
* **01.07.19:** - Add nano.
|
||||
* **24.06.19:** - Initial Release.
|
||||
|
||||
@@ -2,14 +2,13 @@
|
||||
|
||||
# jenkins variables
|
||||
project_name: docker-code-server
|
||||
external_type: github_stable
|
||||
release_type: stable
|
||||
release_tag: latest
|
||||
ls_branch: master
|
||||
external_type: custom_json
|
||||
release_type: prerelease
|
||||
release_tag: development
|
||||
ls_branch: development
|
||||
repo_vars:
|
||||
- EXT_GIT_BRANCH = 'master'
|
||||
- EXT_USER = 'cdr'
|
||||
- EXT_REPO = 'code-server'
|
||||
- JSON_URL = 'https://api.github.com/repos/cdr/code-server/releases'
|
||||
- JSON_PATH = 'first(.[] | select(.prerelease == true)) | .tag_name'
|
||||
- CONTAINER_NAME = 'code-server'
|
||||
- BUILD_VERSION_ARG = 'CODE_RELEASE'
|
||||
- LS_USER = 'linuxserver'
|
||||
|
||||
@@ -25,6 +25,7 @@ grep3.1-2build1
|
||||
gzip1.6-5ubuntu1
|
||||
hostname3.20
|
||||
init-system-helpers1.51
|
||||
jq1.5+dfsg-2
|
||||
krb5-locales1.16-2ubuntu0.1
|
||||
less487-0.1
|
||||
libacl12.2.52-3build1
|
||||
@@ -66,6 +67,7 @@ libheimntlm0-heimdal7.5.0+dfsg-1
|
||||
libhogweed43.4-1
|
||||
libhx509-5-heimdal7.5.0+dfsg-1
|
||||
libidn2-02.0.4-1.1build2
|
||||
libjq11.5+dfsg-2
|
||||
libk5crypto31.16-2ubuntu0.1
|
||||
libkeyutils11.5.9-9.2ubuntu2
|
||||
libkrb5-26-heimdal7.5.0+dfsg-1
|
||||
@@ -80,6 +82,7 @@ libncurses56.1-1ubuntu1.18.04
|
||||
libncursesw56.1-1ubuntu1.18.04
|
||||
libnettle63.4-1
|
||||
libnghttp2-141.30.0-1ubuntu1
|
||||
libonig46.7.0-1
|
||||
libp11-kit00.23.9-2
|
||||
libpam0g1.1.8-3.6ubuntu2.18.04.1
|
||||
libpam-modules1.1.8-3.6ubuntu2.18.04.1
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# project information
|
||||
project_name: code-server
|
||||
project_url: "https://coder.com"
|
||||
project_logo: "https://github.com/cdr/code-server/raw/master/doc/assets/ide.gif"
|
||||
project_logo: "https://github.com/cdr/code-server/raw/master/doc/assets/cli.png"
|
||||
project_blurb: "[{{ project_name|capitalize }}]({{ project_url }}) is VS Code running on a remote server, accessible through the browser.
|
||||
|
||||
- Code on your Chromebook, tablet, and laptop with a consistent dev environment.
|
||||
@@ -65,9 +65,6 @@ app_setup_block: |
|
||||
|
||||
# changelog
|
||||
changelogs:
|
||||
- { date: "24.10.19:", desc: "Upgrade to v2 builds." }
|
||||
- { date: "28.09.19:", desc: "Update project logo." }
|
||||
- { date: "21.09.19:", desc: "Add development builds/tag." }
|
||||
- { date: "09.07.19:", desc: "Add optional sudo access." }
|
||||
- { date: "01.07.19:", desc: "Add nano." }
|
||||
- { date: "24.06.19:", desc: "Initial Release." }
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
#!/usr/bin/with-contenv bash
|
||||
|
||||
if [ -n "${PASSWORD}" ]; then
|
||||
AUTH="password"
|
||||
AUTH="--auth password"
|
||||
else
|
||||
AUTH="none"
|
||||
echo "starting with no password"
|
||||
fi
|
||||
|
||||
@@ -15,5 +14,5 @@ exec \
|
||||
--extensions-dir /config/extensions \
|
||||
--disable-telemetry \
|
||||
--disable-updates \
|
||||
--auth "${AUTH}" \
|
||||
${AUTH} \
|
||||
/config/workspace
|
||||
|
||||
Reference in New Issue
Block a user