mirror of
https://github.com/linuxserver/docker-code-server
synced 2025-06-26 18:27:40 +00:00
Compare commits
7 Commits
4.11.0-ls1
...
4.13.0-ls1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
549e2e0208 | ||
|
|
8bc5a8902e | ||
|
|
1119a25e4c | ||
|
|
675ec78a74 | ||
|
|
16d7bd96af | ||
|
|
66da21de61 | ||
|
|
b8bcdc44b7 |
6
.github/workflows/call_issue_pr_tracker.yml
vendored
6
.github/workflows/call_issue_pr_tracker.yml
vendored
@@ -2,9 +2,11 @@ name: Issue & PR Tracker
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
issues:
|
issues:
|
||||||
types: [opened,reopened,labeled,unlabeled]
|
types: [opened,reopened,labeled,unlabeled,closed]
|
||||||
pull_request_target:
|
pull_request_target:
|
||||||
types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled]
|
types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled,closed]
|
||||||
|
pull_request_review:
|
||||||
|
types: [submitted,edited,dismissed]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
manage-project:
|
manage-project:
|
||||||
|
|||||||
8
.github/workflows/external_trigger.yml
vendored
8
.github/workflows/external_trigger.yml
vendored
@@ -14,9 +14,11 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER }}" ]; then
|
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER }}" ]; then
|
||||||
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER is set; skipping trigger. ****"
|
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER is set; skipping trigger. ****"
|
||||||
|
echo "Github secret \`PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER\". ****"
|
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER\". ****"
|
||||||
|
echo "External trigger running off of master branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_CODE_SERVER_MASTER\`" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "**** Retrieving external version ****"
|
echo "**** Retrieving external version ****"
|
||||||
EXT_RELEASE=$(curl -u ${{ secrets.CR_USER }}:${{ secrets.CR_PAT }} -sX GET https://api.github.com/repos/coder/code-server/releases/latest | jq -r '.tag_name' | sed 's|^v||')
|
EXT_RELEASE=$(curl -u ${{ secrets.CR_USER }}:${{ secrets.CR_PAT }} -sX GET https://api.github.com/repos/coder/code-server/releases/latest | jq -r '.tag_name' | sed 's|^v||')
|
||||||
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
|
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
|
||||||
@@ -30,6 +32,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
|
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
|
||||||
echo "**** External version: ${EXT_RELEASE} ****"
|
echo "**** External version: ${EXT_RELEASE} ****"
|
||||||
|
echo "External version: ${EXT_RELEASE}" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "**** Retrieving last pushed version ****"
|
echo "**** Retrieving last pushed version ****"
|
||||||
image="linuxserver/code-server"
|
image="linuxserver/code-server"
|
||||||
tag="latest"
|
tag="latest"
|
||||||
@@ -65,14 +68,18 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo "**** Last pushed version: ${IMAGE_VERSION} ****"
|
echo "**** Last pushed version: ${IMAGE_VERSION} ****"
|
||||||
|
echo "Last pushed version: ${IMAGE_VERSION}" >> $GITHUB_STEP_SUMMARY
|
||||||
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
|
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
|
||||||
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
|
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
|
||||||
|
echo "Version ${EXT_RELEASE} already pushed, exiting" >> $GITHUB_STEP_SUMMARY
|
||||||
exit 0
|
exit 0
|
||||||
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
|
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/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 ****"
|
echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****"
|
||||||
|
echo "New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
|
||||||
exit 0
|
exit 0
|
||||||
else
|
else
|
||||||
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****"
|
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****"
|
||||||
|
echo "New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build" >> $GITHUB_STEP_SUMMARY
|
||||||
response=$(curl -iX POST \
|
response=$(curl -iX POST \
|
||||||
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/buildWithParameters?PACKAGE_CHECK=false \
|
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/buildWithParameters?PACKAGE_CHECK=false \
|
||||||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
|
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
|
||||||
@@ -82,6 +89,7 @@ jobs:
|
|||||||
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
|
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
|
||||||
buildurl="${buildurl%$'\r'}"
|
buildurl="${buildurl%$'\r'}"
|
||||||
echo "**** Jenkins job build url: ${buildurl} ****"
|
echo "**** Jenkins job build url: ${buildurl} ****"
|
||||||
|
echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "**** Attempting to change the Jenkins job description ****"
|
echo "**** Attempting to change the Jenkins job description ****"
|
||||||
curl -iX POST \
|
curl -iX POST \
|
||||||
"${buildurl}submitDescription" \
|
"${buildurl}submitDescription" \
|
||||||
|
|||||||
18
.github/workflows/external_trigger_scheduler.yml
vendored
18
.github/workflows/external_trigger_scheduler.yml
vendored
@@ -2,7 +2,7 @@ name: External Trigger Scheduler
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '41 * * * *'
|
- cron: '32 * * * *'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@@ -17,18 +17,18 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "**** Branches found: ****"
|
echo "**** Branches found: ****"
|
||||||
git for-each-ref --format='%(refname:short)' refs/remotes
|
git for-each-ref --format='%(refname:short)' refs/remotes
|
||||||
echo "**** Pulling the yq docker image ****"
|
|
||||||
docker pull ghcr.io/linuxserver/yq
|
|
||||||
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
|
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
|
||||||
do
|
do
|
||||||
br=$(echo "$br" | sed 's|origin/||g')
|
br=$(echo "$br" | sed 's|origin/||g')
|
||||||
echo "**** Evaluating branch ${br} ****"
|
echo "**** Evaluating branch ${br} ****"
|
||||||
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-code-server/${br}/jenkins-vars.yml \
|
ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-code-server/${br}/jenkins-vars.yml)
|
||||||
| docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch)
|
ls_branch=$(echo "${ls_jenkins_vars}" | yq -r '.ls_branch')
|
||||||
if [ "$br" == "$ls_branch" ]; then
|
ls_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type')
|
||||||
echo "**** Branch ${br} appears to be live; checking workflow. ****"
|
if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then
|
||||||
|
echo "**** Branch ${br} appears to be live and trigger is not os; checking workflow. ****"
|
||||||
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-code-server/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then
|
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-code-server/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then
|
||||||
echo "**** Workflow exists. Triggering external trigger workflow for branch ${br} ****."
|
echo "**** Workflow exists. Triggering external trigger workflow for branch ${br} ****."
|
||||||
|
echo "Triggering external trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY
|
||||||
curl -iX POST \
|
curl -iX POST \
|
||||||
-H "Authorization: token ${{ secrets.CR_PAT }}" \
|
-H "Authorization: token ${{ secrets.CR_PAT }}" \
|
||||||
-H "Accept: application/vnd.github.v3+json" \
|
-H "Accept: application/vnd.github.v3+json" \
|
||||||
@@ -36,8 +36,10 @@ jobs:
|
|||||||
https://api.github.com/repos/linuxserver/docker-code-server/actions/workflows/external_trigger.yml/dispatches
|
https://api.github.com/repos/linuxserver/docker-code-server/actions/workflows/external_trigger.yml/dispatches
|
||||||
else
|
else
|
||||||
echo "**** Workflow doesn't exist; skipping trigger. ****"
|
echo "**** Workflow doesn't exist; skipping trigger. ****"
|
||||||
|
echo "Skipping branch ${br} due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
|
echo "**** ${br} is either a dev branch, or has no external version; skipping trigger. ****"
|
||||||
|
echo "Skipping branch ${br} due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
4
.github/workflows/package_trigger.yml
vendored
4
.github/workflows/package_trigger.yml
vendored
@@ -14,13 +14,16 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_CODE_SERVER_MASTER }}" ]; then
|
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_CODE_SERVER_MASTER }}" ]; then
|
||||||
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_CODE_SERVER_MASTER is set; skipping trigger. ****"
|
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_CODE_SERVER_MASTER is set; skipping trigger. ****"
|
||||||
|
echo "Github secret \`PAUSE_PACKAGE_TRIGGER_CODE_SERVER_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
|
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
|
||||||
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
|
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
|
||||||
|
echo "There already seems to be an active build on Jenkins; skipping package trigger" >> $GITHUB_STEP_SUMMARY
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
echo "**** Package trigger running off of master branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_CODE_SERVER_MASTER\". ****"
|
echo "**** Package trigger running off of master branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_CODE_SERVER_MASTER\". ****"
|
||||||
|
echo "Package trigger running off of master branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_CODE_SERVER_MASTER\`" >> $GITHUB_STEP_SUMMARY
|
||||||
response=$(curl -iX POST \
|
response=$(curl -iX POST \
|
||||||
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/buildWithParameters?PACKAGE_CHECK=true \
|
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/buildWithParameters?PACKAGE_CHECK=true \
|
||||||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
|
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
|
||||||
@@ -30,6 +33,7 @@ jobs:
|
|||||||
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
|
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
|
||||||
buildurl="${buildurl%$'\r'}"
|
buildurl="${buildurl%$'\r'}"
|
||||||
echo "**** Jenkins job build url: ${buildurl} ****"
|
echo "**** Jenkins job build url: ${buildurl} ****"
|
||||||
|
echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "**** Attempting to change the Jenkins job description ****"
|
echo "**** Attempting to change the Jenkins job description ****"
|
||||||
curl -iX POST \
|
curl -iX POST \
|
||||||
"${buildurl}submitDescription" \
|
"${buildurl}submitDescription" \
|
||||||
|
|||||||
@@ -17,18 +17,16 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "**** Branches found: ****"
|
echo "**** Branches found: ****"
|
||||||
git for-each-ref --format='%(refname:short)' refs/remotes
|
git for-each-ref --format='%(refname:short)' refs/remotes
|
||||||
echo "**** Pulling the yq docker image ****"
|
|
||||||
docker pull ghcr.io/linuxserver/yq
|
|
||||||
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
|
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
|
||||||
do
|
do
|
||||||
br=$(echo "$br" | sed 's|origin/||g')
|
br=$(echo "$br" | sed 's|origin/||g')
|
||||||
echo "**** Evaluating branch ${br} ****"
|
echo "**** Evaluating branch ${br} ****"
|
||||||
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-code-server/${br}/jenkins-vars.yml \
|
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-code-server/${br}/jenkins-vars.yml | yq -r '.ls_branch')
|
||||||
| docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch)
|
|
||||||
if [ "${br}" == "${ls_branch}" ]; then
|
if [ "${br}" == "${ls_branch}" ]; then
|
||||||
echo "**** Branch ${br} appears to be live; checking workflow. ****"
|
echo "**** Branch ${br} appears to be live; checking workflow. ****"
|
||||||
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-code-server/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then
|
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-code-server/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then
|
||||||
echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****"
|
echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****"
|
||||||
|
echo "Triggering package trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY
|
||||||
triggered_branches="${triggered_branches}${br} "
|
triggered_branches="${triggered_branches}${br} "
|
||||||
curl -iX POST \
|
curl -iX POST \
|
||||||
-H "Authorization: token ${{ secrets.CR_PAT }}" \
|
-H "Authorization: token ${{ secrets.CR_PAT }}" \
|
||||||
@@ -38,9 +36,11 @@ jobs:
|
|||||||
sleep 30
|
sleep 30
|
||||||
else
|
else
|
||||||
echo "**** Workflow doesn't exist; skipping trigger. ****"
|
echo "**** Workflow doesn't exist; skipping trigger. ****"
|
||||||
|
echo "Skipping branch ${br} due to no package trigger workflow present." >> $GITHUB_STEP_SUMMARY
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
|
echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
|
||||||
|
echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
|
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
|
||||||
|
|||||||
192
Jenkinsfile
vendored
192
Jenkinsfile
vendored
@@ -39,10 +39,16 @@ pipeline {
|
|||||||
// Setup all the basic environment variables needed for the build
|
// Setup all the basic environment variables needed for the build
|
||||||
stage("Set ENV Variables base"){
|
stage("Set ENV Variables base"){
|
||||||
steps{
|
steps{
|
||||||
|
sh '''#! /bin/bash
|
||||||
|
containers=$(docker ps -aq)
|
||||||
|
if [[ -n "${containers}" ]]; then
|
||||||
|
docker stop ${containers}
|
||||||
|
fi
|
||||||
|
docker system prune -af --volumes || : '''
|
||||||
script{
|
script{
|
||||||
env.EXIT_STATUS = ''
|
env.EXIT_STATUS = ''
|
||||||
env.LS_RELEASE = sh(
|
env.LS_RELEASE = sh(
|
||||||
script: '''docker run --rm ghcr.io/linuxserver/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 quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:latest 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
|
||||||
returnStdout: true).trim()
|
returnStdout: true).trim()
|
||||||
env.LS_RELEASE_NOTES = sh(
|
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' ''',
|
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' ''',
|
||||||
@@ -203,12 +209,12 @@ pipeline {
|
|||||||
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
|
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
|
||||||
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
|
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
|
||||||
if (env.MULTIARCH == 'true') {
|
if (env.MULTIARCH == 'true') {
|
||||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
|
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
||||||
} else {
|
} else {
|
||||||
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
|
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
||||||
}
|
}
|
||||||
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
|
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
||||||
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
|
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
||||||
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
|
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
|
||||||
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
|
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
|
||||||
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
|
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
|
||||||
@@ -228,7 +234,7 @@ pipeline {
|
|||||||
script{
|
script{
|
||||||
env.SHELLCHECK_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml'
|
env.SHELLCHECK_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml'
|
||||||
}
|
}
|
||||||
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
|
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-jenkins-builder/master/checkrun.sh | /bin/bash'''
|
||||||
sh '''#! /bin/bash
|
sh '''#! /bin/bash
|
||||||
docker run --rm \
|
docker run --rm \
|
||||||
-v ${WORKSPACE}:/mnt \
|
-v ${WORKSPACE}:/mnt \
|
||||||
@@ -336,6 +342,8 @@ pipeline {
|
|||||||
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
|
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
|
||||||
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
|
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
|
||||||
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
|
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
|
||||||
|
elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
|
||||||
|
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
|
||||||
fi
|
fi
|
||||||
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
|
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
|
||||||
cd ${TEMPDIR}/unraid/templates/
|
cd ${TEMPDIR}/unraid/templates/
|
||||||
@@ -376,6 +384,26 @@ pipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// If this is a master build check the S6 service file perms
|
||||||
|
stage("Check S6 Service file Permissions"){
|
||||||
|
when {
|
||||||
|
branch "master"
|
||||||
|
environment name: 'CHANGE_ID', value: ''
|
||||||
|
environment name: 'EXIT_STATUS', value: ''
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script{
|
||||||
|
sh '''#! /bin/bash
|
||||||
|
WRONG_PERM=$(find ./ -path "./.git" -prune -o \\( -name "run" -o -name "finish" -o -name "check" \\) -not -perm -u=x,g=x,o=x -print)
|
||||||
|
if [[ -n "${WRONG_PERM}" ]]; then
|
||||||
|
echo "The following S6 service files are missing the executable bit; canceling the faulty build: ${WRONG_PERM}"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "S6 service file perms look good."
|
||||||
|
fi '''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
/* #######################
|
/* #######################
|
||||||
GitLab Mirroring
|
GitLab Mirroring
|
||||||
####################### */
|
####################### */
|
||||||
@@ -407,8 +435,7 @@ pipeline {
|
|||||||
}
|
}
|
||||||
steps{
|
steps{
|
||||||
sh '''#! /bin/bash
|
sh '''#! /bin/bash
|
||||||
set -e
|
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/code-server") | .uuid' || :)
|
||||||
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/code-server") | .uuid')
|
|
||||||
if [ -z "${PACKAGE_UUID}" ]; then
|
if [ -z "${PACKAGE_UUID}" ]; then
|
||||||
echo "Adding package to Scarf.sh"
|
echo "Adding package to Scarf.sh"
|
||||||
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
|
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
|
||||||
@@ -518,9 +545,12 @@ pipeline {
|
|||||||
retry(5) {
|
retry(5) {
|
||||||
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
|
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
|
||||||
}
|
}
|
||||||
sh '''docker rmi \
|
sh '''#! /bin/bash
|
||||||
${IMAGE}:arm32v7-${META_TAG} \
|
containers=$(docker ps -aq)
|
||||||
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
|
if [[ -n "${containers}" ]]; then
|
||||||
|
docker stop ${containers}
|
||||||
|
fi
|
||||||
|
docker system prune -af --volumes || : '''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Build ARM64') {
|
stage('Build ARM64') {
|
||||||
@@ -553,9 +583,12 @@ pipeline {
|
|||||||
retry(5) {
|
retry(5) {
|
||||||
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
|
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
|
||||||
}
|
}
|
||||||
sh '''docker rmi \
|
sh '''#! /bin/bash
|
||||||
${IMAGE}:arm64v8-${META_TAG} \
|
containers=$(docker ps -aq)
|
||||||
ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
|
if [[ -n "${containers}" ]]; then
|
||||||
|
docker stop ${containers}
|
||||||
|
fi
|
||||||
|
docker system prune -af --volumes || : '''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -616,13 +649,6 @@ pipeline {
|
|||||||
environment name: 'EXIT_STATUS', value: ''
|
environment name: 'EXIT_STATUS', value: ''
|
||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
sh '''#! /bin/bash
|
|
||||||
echo "Packages were updated. Cleaning up the image and exiting."
|
|
||||||
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
|
|
||||||
docker rmi ${IMAGE}:amd64-${META_TAG}
|
|
||||||
else
|
|
||||||
docker rmi ${IMAGE}:${META_TAG}
|
|
||||||
fi'''
|
|
||||||
script{
|
script{
|
||||||
env.EXIT_STATUS = 'ABORTED'
|
env.EXIT_STATUS = 'ABORTED'
|
||||||
}
|
}
|
||||||
@@ -640,13 +666,6 @@ pipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
sh '''#! /bin/bash
|
|
||||||
echo "There are no package updates. Cleaning up the image and exiting."
|
|
||||||
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
|
|
||||||
docker rmi ${IMAGE}:amd64-${META_TAG}
|
|
||||||
else
|
|
||||||
docker rmi ${IMAGE}:${META_TAG}
|
|
||||||
fi'''
|
|
||||||
script{
|
script{
|
||||||
env.EXIT_STATUS = 'ABORTED'
|
env.EXIT_STATUS = 'ABORTED'
|
||||||
}
|
}
|
||||||
@@ -668,6 +687,7 @@ pipeline {
|
|||||||
]) {
|
]) {
|
||||||
script{
|
script{
|
||||||
env.CI_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/index.html'
|
env.CI_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/index.html'
|
||||||
|
env.CI_JSON_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/report.json'
|
||||||
}
|
}
|
||||||
sh '''#! /bin/bash
|
sh '''#! /bin/bash
|
||||||
set -e
|
set -e
|
||||||
@@ -694,8 +714,6 @@ pipeline {
|
|||||||
-e WEB_SCREENSHOT=\"${CI_WEB}\" \
|
-e WEB_SCREENSHOT=\"${CI_WEB}\" \
|
||||||
-e WEB_AUTH=\"${CI_AUTH}\" \
|
-e WEB_AUTH=\"${CI_AUTH}\" \
|
||||||
-e WEB_PATH=\"${CI_WEBPATH}\" \
|
-e WEB_PATH=\"${CI_WEBPATH}\" \
|
||||||
-e DO_REGION="ams3" \
|
|
||||||
-e DO_BUCKET="lsio-ci" \
|
|
||||||
-t ghcr.io/linuxserver/ci:latest \
|
-t ghcr.io/linuxserver/ci:latest \
|
||||||
python3 test_build.py'''
|
python3 test_build.py'''
|
||||||
}
|
}
|
||||||
@@ -748,17 +766,6 @@ pipeline {
|
|||||||
done
|
done
|
||||||
'''
|
'''
|
||||||
}
|
}
|
||||||
sh '''#! /bin/bash
|
|
||||||
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
|
|
||||||
docker rmi \
|
|
||||||
${DELETEIMAGE}:${META_TAG} \
|
|
||||||
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
|
|
||||||
${DELETEIMAGE}:latest || :
|
|
||||||
if [ -n "${SEMVER}" ]; then
|
|
||||||
docker rmi ${DELETEIMAGE}:${SEMVER} || :
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
'''
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -852,29 +859,6 @@ pipeline {
|
|||||||
done
|
done
|
||||||
'''
|
'''
|
||||||
}
|
}
|
||||||
sh '''#! /bin/bash
|
|
||||||
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
|
|
||||||
docker rmi \
|
|
||||||
${DELETEIMAGE}:amd64-${META_TAG} \
|
|
||||||
${DELETEIMAGE}:amd64-latest \
|
|
||||||
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
|
|
||||||
${DELETEIMAGE}:arm32v7-${META_TAG} \
|
|
||||||
${DELETEIMAGE}:arm32v7-latest \
|
|
||||||
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
|
|
||||||
${DELETEIMAGE}:arm64v8-${META_TAG} \
|
|
||||||
${DELETEIMAGE}:arm64v8-latest \
|
|
||||||
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
|
|
||||||
if [ -n "${SEMVER}" ]; then
|
|
||||||
docker rmi \
|
|
||||||
${DELETEIMAGE}:amd64-${SEMVER} \
|
|
||||||
${DELETEIMAGE}:arm32v7-${SEMVER} \
|
|
||||||
${DELETEIMAGE}:arm64v8-${SEMVER} || :
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
docker rmi \
|
|
||||||
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
|
|
||||||
ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
|
|
||||||
'''
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -945,12 +929,78 @@ pipeline {
|
|||||||
stage('Pull Request Comment') {
|
stage('Pull Request Comment') {
|
||||||
when {
|
when {
|
||||||
not {environment name: 'CHANGE_ID', value: ''}
|
not {environment name: 'CHANGE_ID', value: ''}
|
||||||
environment name: 'CI', value: 'true'
|
|
||||||
environment name: 'EXIT_STATUS', value: ''
|
environment name: 'EXIT_STATUS', value: ''
|
||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
|
sh '''#! /bin/bash
|
||||||
-d '{"body": "I am a bot, here are the test results for this PR: \\n'${CI_URL}' \\n'${SHELLCHECK_URL}'"}' '''
|
# Function to retrieve JSON data from URL
|
||||||
|
get_json() {
|
||||||
|
local url="$1"
|
||||||
|
local response=$(curl -s "$url")
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Failed to retrieve JSON data from $url"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
local json=$(echo "$response" | jq .)
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Failed to parse JSON data from $url"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
echo "$json"
|
||||||
|
}
|
||||||
|
|
||||||
|
build_table() {
|
||||||
|
local data="$1"
|
||||||
|
|
||||||
|
# Get the keys in the JSON data
|
||||||
|
local keys=$(echo "$data" | jq -r 'to_entries | map(.key) | .[]')
|
||||||
|
|
||||||
|
# Check if keys are empty
|
||||||
|
if [ -z "$keys" ]; then
|
||||||
|
echo "JSON report data does not contain any keys or the report does not exist."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build table header
|
||||||
|
local header="| Tag | Passed |\\n| --- | --- |\\n"
|
||||||
|
|
||||||
|
# Loop through the JSON data to build the table rows
|
||||||
|
local rows=""
|
||||||
|
for build in $keys; do
|
||||||
|
local status=$(echo "$data" | jq -r ".[\\"$build\\"].test_success")
|
||||||
|
if [ "$status" = "true" ]; then
|
||||||
|
status="✅"
|
||||||
|
else
|
||||||
|
status="❌"
|
||||||
|
fi
|
||||||
|
local row="| "$build" | "$status" |\\n"
|
||||||
|
rows="${rows}${row}"
|
||||||
|
done
|
||||||
|
|
||||||
|
local table="${header}${rows}"
|
||||||
|
local escaped_table=$(echo "$table" | sed 's/\"/\\\\"/g')
|
||||||
|
echo "$escaped_table"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ "${CI}" = "true" ]]; then
|
||||||
|
# Retrieve JSON data from URL
|
||||||
|
data=$(get_json "$CI_JSON_URL")
|
||||||
|
# Create table from JSON data
|
||||||
|
table=$(build_table "$data")
|
||||||
|
echo -e "$table"
|
||||||
|
|
||||||
|
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||||
|
-H "Accept: application/vnd.github.v3+json" \
|
||||||
|
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||||
|
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"
|
||||||
|
else
|
||||||
|
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||||
|
-H "Accept: application/vnd.github.v3+json" \
|
||||||
|
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||||
|
-d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
|
||||||
|
fi
|
||||||
|
'''
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -976,6 +1026,14 @@ pipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
cleanup {
|
cleanup {
|
||||||
|
sh '''#! /bin/bash
|
||||||
|
echo "Performing docker system prune!!"
|
||||||
|
containers=$(docker ps -aq)
|
||||||
|
if [[ -n "${containers}" ]]; then
|
||||||
|
docker stop ${containers}
|
||||||
|
fi
|
||||||
|
docker system prune -af --volumes || :
|
||||||
|
'''
|
||||||
cleanWs()
|
cleanWs()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ NAME VERSION
|
|||||||
@google-cloud/promisify 2.0.4 npm
|
@google-cloud/promisify 2.0.4 npm
|
||||||
@grpc/grpc-js 1.6.12 npm
|
@grpc/grpc-js 1.6.12 npm
|
||||||
@grpc/proto-loader 0.6.13 npm
|
@grpc/proto-loader 0.6.13 npm
|
||||||
@grpc/proto-loader 0.7.5 npm
|
@grpc/proto-loader 0.7.7 npm
|
||||||
@mapbox/node-pre-gyp 1.0.10 npm
|
@mapbox/node-pre-gyp 1.0.10 npm
|
||||||
@microsoft/1ds-core-js 3.2.3 npm
|
@microsoft/1ds-core-js 3.2.3 npm
|
||||||
@microsoft/1ds-post-js 3.2.3 npm
|
@microsoft/1ds-post-js 3.2.3 npm
|
||||||
@@ -31,14 +31,16 @@ NAME VERSION
|
|||||||
@tootallnate/once 1.1.2 npm
|
@tootallnate/once 1.1.2 npm
|
||||||
@tootallnate/once 2.0.0 npm
|
@tootallnate/once 2.0.0 npm
|
||||||
@types/long 4.0.2 npm
|
@types/long 4.0.2 npm
|
||||||
@types/node 16.11.41 npm
|
@types/node 16.18.18 npm
|
||||||
@vscode/iconv-lite-umd 0.7.0 npm
|
@vscode/iconv-lite-umd 0.7.0 npm
|
||||||
@vscode/ripgrep 1.14.2 npm
|
@vscode/proxy-agent 0.13.2 npm
|
||||||
|
@vscode/ripgrep 1.15.2 npm
|
||||||
|
@vscode/spdlog 0.13.10 npm
|
||||||
@vscode/vscode-languagedetection 1.0.21 npm
|
@vscode/vscode-languagedetection 1.0.21 npm
|
||||||
abbrev 1.1.1 npm
|
abbrev 1.1.1 npm
|
||||||
abort-controller 3.0.0 npm
|
abort-controller 3.0.0 npm
|
||||||
accepts 1.3.7 npm
|
accepts 1.3.7 npm
|
||||||
acorn 8.7.0 npm
|
acorn 8.8.2 npm
|
||||||
acorn-walk 8.2.0 npm
|
acorn-walk 8.2.0 npm
|
||||||
adduser 3.118ubuntu5 deb
|
adduser 3.118ubuntu5 deb
|
||||||
agent-base 4.2.0 npm
|
agent-base 4.2.0 npm
|
||||||
@@ -49,8 +51,8 @@ ansi-regex 5.0.1
|
|||||||
ansi-styles 4.3.0 npm
|
ansi-styles 4.3.0 npm
|
||||||
aproba 1.2.0 npm
|
aproba 1.2.0 npm
|
||||||
aproba 2.0.0 npm
|
aproba 2.0.0 npm
|
||||||
apt 2.4.8 deb
|
apt 2.4.9 deb
|
||||||
apt-utils 2.4.8 deb
|
apt-utils 2.4.9 deb
|
||||||
are-we-there-yet 1.1.7 npm
|
are-we-there-yet 1.1.7 npm
|
||||||
are-we-there-yet 2.0.0 npm
|
are-we-there-yet 2.0.0 npm
|
||||||
argon2 0.30.3 npm
|
argon2 0.30.3 npm
|
||||||
@@ -88,9 +90,10 @@ charenc 0.0.2
|
|||||||
chownr 1.1.4 npm
|
chownr 1.1.4 npm
|
||||||
chownr 2.0.0 npm
|
chownr 2.0.0 npm
|
||||||
cliui 7.0.4 npm
|
cliui 7.0.4 npm
|
||||||
|
cliui 8.0.1 npm
|
||||||
clojure 1.0.0 npm
|
clojure 1.0.0 npm
|
||||||
code-point-at 1.1.0 npm
|
code-point-at 1.1.0 npm
|
||||||
code-server 4.11.0 npm
|
code-server 4.13.0 npm
|
||||||
coffeescript 1.0.0 npm
|
coffeescript 1.0.0 npm
|
||||||
color-convert 2.0.1 npm
|
color-convert 2.0.1 npm
|
||||||
color-name 1.1.4 npm
|
color-name 1.1.4 npm
|
||||||
@@ -194,9 +197,9 @@ get-caller-file 2.0.5
|
|||||||
get-intrinsic 1.1.1 npm
|
get-intrinsic 1.1.1 npm
|
||||||
get-uri 3.0.2 npm
|
get-uri 3.0.2 npm
|
||||||
git 1.0.0 npm
|
git 1.0.0 npm
|
||||||
git 1:2.34.1-1ubuntu1.8 deb
|
git 1:2.34.1-1ubuntu1.9 deb
|
||||||
git-base 1.0.0 npm
|
git-base 1.0.0 npm
|
||||||
git-man 1:2.34.1-1ubuntu1.8 deb
|
git-man 1:2.34.1-1ubuntu1.9 deb
|
||||||
github 0.0.1 npm
|
github 0.0.1 npm
|
||||||
github-authentication 0.0.2 npm
|
github-authentication 0.0.2 npm
|
||||||
github-from-package 0.0.0 npm
|
github-from-package 0.0.0 npm
|
||||||
@@ -268,7 +271,7 @@ jake 1.0.0
|
|||||||
java 1.0.0 npm
|
java 1.0.0 npm
|
||||||
javascript 1.0.0 npm
|
javascript 1.0.0 npm
|
||||||
jq 1.6-2.1ubuntu3 deb
|
jq 1.6-2.1ubuntu3 deb
|
||||||
js-debug 1.76.0 npm
|
js-debug 1.78.0 npm
|
||||||
js-debug-companion 1.0.18 npm
|
js-debug-companion 1.0.18 npm
|
||||||
js-yaml 4.1.0 npm
|
js-yaml 4.1.0 npm
|
||||||
jschardet 3.0.0 npm
|
jschardet 3.0.0 npm
|
||||||
@@ -286,7 +289,7 @@ less 1.0.0
|
|||||||
less 590-1ubuntu0.22.04.1 deb
|
less 590-1ubuntu0.22.04.1 deb
|
||||||
levn 0.3.0 npm
|
levn 0.3.0 npm
|
||||||
libacl1 2.3.1-1 deb
|
libacl1 2.3.1-1 deb
|
||||||
libapt-pkg6.0 2.4.8 deb
|
libapt-pkg6.0 2.4.9 deb
|
||||||
libassuan0 2.5.5-1build1 deb
|
libassuan0 2.5.5-1build1 deb
|
||||||
libatomic1 12.1.0-2ubuntu1~22.04 deb
|
libatomic1 12.1.0-2ubuntu1~22.04 deb
|
||||||
libattr1 1:2.5.1-1build1 deb
|
libattr1 1:2.5.1-1build1 deb
|
||||||
@@ -366,14 +369,14 @@ libsmartcols1 2.37.2-4ubuntu3
|
|||||||
libsqlite3-0 3.37.2-2ubuntu0.1 deb
|
libsqlite3-0 3.37.2-2ubuntu0.1 deb
|
||||||
libss2 1.46.5-2ubuntu1.1 deb
|
libss2 1.46.5-2ubuntu1.1 deb
|
||||||
libssh-4 0.9.6-2build1 deb
|
libssh-4 0.9.6-2build1 deb
|
||||||
libssl3 3.0.2-0ubuntu1.8 deb
|
libssl3 3.0.2-0ubuntu1.9 deb
|
||||||
libstdc++6 12.1.0-2ubuntu1~22.04 deb
|
libstdc++6 12.1.0-2ubuntu1~22.04 deb
|
||||||
libsystemd0 249.11-0ubuntu3.7 deb
|
libsystemd0 249.11-0ubuntu3.9 deb
|
||||||
libtasn1-6 4.18.0-4build1 deb
|
libtasn1-6 4.18.0-4build1 deb
|
||||||
libtinfo6 6.3-2 deb
|
libtinfo6 6.3-2 deb
|
||||||
libtirpc-common 1.3.2-2ubuntu0.1 deb
|
libtirpc-common 1.3.2-2ubuntu0.1 deb
|
||||||
libtirpc3 1.3.2-2ubuntu0.1 deb
|
libtirpc3 1.3.2-2ubuntu0.1 deb
|
||||||
libudev1 249.11-0ubuntu3.7 deb
|
libudev1 249.11-0ubuntu3.9 deb
|
||||||
libunistring2 1.0-1 deb
|
libunistring2 1.0-1 deb
|
||||||
libuuid1 2.37.2-4ubuntu3 deb
|
libuuid1 2.37.2-4ubuntu3 deb
|
||||||
libx11-6 2:1.7.5-1 deb
|
libx11-6 2:1.7.5-1 deb
|
||||||
@@ -392,7 +395,7 @@ log 1.0.0
|
|||||||
login 1:4.8.1-2ubuntu2.1 deb
|
login 1:4.8.1-2ubuntu2.1 deb
|
||||||
logsave 1.46.5-2ubuntu1.1 deb
|
logsave 1.46.5-2ubuntu1.1 deb
|
||||||
long 4.0.0 npm
|
long 4.0.0 npm
|
||||||
long 5.2.1 npm
|
long 5.2.3 npm
|
||||||
lru-cache 5.1.1 npm
|
lru-cache 5.1.1 npm
|
||||||
lru-cache 6.0.0 npm
|
lru-cache 6.0.0 npm
|
||||||
lsb-base 11.1.0ubuntu4 deb
|
lsb-base 11.1.0ubuntu4 deb
|
||||||
@@ -419,18 +422,17 @@ minimatch 3.1.2
|
|||||||
minimist 1.2.6 npm
|
minimist 1.2.6 npm
|
||||||
minipass 3.1.3 npm
|
minipass 3.1.3 npm
|
||||||
minizlib 2.1.2 npm
|
minizlib 2.1.2 npm
|
||||||
mkdirp 0.5.5 npm
|
mkdirp 0.5.6 npm
|
||||||
mkdirp 1.0.4 npm
|
mkdirp 1.0.4 npm
|
||||||
mkdirp-classic 0.5.3 npm
|
mkdirp-classic 0.5.3 npm
|
||||||
mount 2.37.2-4ubuntu3 deb
|
mount 2.37.2-4ubuntu3 deb
|
||||||
ms 2.0.0 npm
|
ms 2.0.0 npm
|
||||||
ms 2.1.1 npm
|
ms 2.1.1 npm
|
||||||
ms 2.1.2 npm
|
ms 2.1.2 npm
|
||||||
nan 2.15.0 npm
|
|
||||||
nan 2.17.0 npm
|
nan 2.17.0 npm
|
||||||
nano 6.2-1 deb
|
nano 6.2-1 deb
|
||||||
napi-build-utils 1.0.2 npm
|
napi-build-utils 1.0.2 npm
|
||||||
native-watchdog 1.4.1 npm
|
native-watchdog 1.4.2 npm
|
||||||
ncurses-base 6.3-2 deb
|
ncurses-base 6.3-2 deb
|
||||||
ncurses-bin 6.3-2 deb
|
ncurses-bin 6.3-2 deb
|
||||||
negotiator 0.6.2 npm
|
negotiator 0.6.2 npm
|
||||||
@@ -439,7 +441,7 @@ netbase 6.3
|
|||||||
netcat 1.218-4ubuntu1 deb
|
netcat 1.218-4ubuntu1 deb
|
||||||
netcat-openbsd 1.218-4ubuntu1 deb
|
netcat-openbsd 1.218-4ubuntu1 deb
|
||||||
netmask 2.0.2 npm
|
netmask 2.0.2 npm
|
||||||
node 16.19.1 binary
|
node 16.20.0 binary
|
||||||
node-abi 3.8.0 npm
|
node-abi 3.8.0 npm
|
||||||
node-addon-api 3.2.1 npm
|
node-addon-api 3.2.1 npm
|
||||||
node-addon-api 4.3.0 npm
|
node-addon-api 4.3.0 npm
|
||||||
@@ -448,7 +450,7 @@ node-fetch 2.6.7
|
|||||||
node-forge 1.3.1 npm
|
node-forge 1.3.1 npm
|
||||||
node-forge-flash 0.0.0 npm
|
node-forge-flash 0.0.0 npm
|
||||||
node-gyp-build 4.3.0 npm
|
node-gyp-build 4.3.0 npm
|
||||||
node-pty 0.11.0-beta29 npm
|
node-pty 0.11.0-beta32 npm
|
||||||
nopt 5.0.0 npm
|
nopt 5.0.0 npm
|
||||||
npm 1.0.1 npm
|
npm 1.0.1 npm
|
||||||
npmlog 4.1.2 npm
|
npmlog 4.1.2 npm
|
||||||
@@ -463,7 +465,7 @@ on-finished 2.3.0
|
|||||||
on-headers 1.0.2 npm
|
on-headers 1.0.2 npm
|
||||||
once 1.4.0 npm
|
once 1.4.0 npm
|
||||||
openssh-client 1:8.9p1-3ubuntu0.1 deb
|
openssh-client 1:8.9p1-3ubuntu0.1 deb
|
||||||
openssl 3.0.2-0ubuntu1.8 deb
|
openssl 3.0.2-0ubuntu1.9 deb
|
||||||
optionator 0.8.3 npm
|
optionator 0.8.3 npm
|
||||||
os-tmpdir 1.0.2 npm
|
os-tmpdir 1.0.2 npm
|
||||||
pac-proxy-agent 5.0.0 npm
|
pac-proxy-agent 5.0.0 npm
|
||||||
@@ -490,7 +492,7 @@ process-nextick-args 2.0.1
|
|||||||
procps 2:3.3.17-6ubuntu2 deb
|
procps 2:3.3.17-6ubuntu2 deb
|
||||||
proto3-json-serializer 0.1.9 npm
|
proto3-json-serializer 0.1.9 npm
|
||||||
protobufjs 6.11.3 npm
|
protobufjs 6.11.3 npm
|
||||||
protobufjs 7.2.2 npm
|
protobufjs 7.2.3 npm
|
||||||
proxy-addr 2.0.6 npm
|
proxy-addr 2.0.6 npm
|
||||||
proxy-agent 5.0.0 npm
|
proxy-agent 5.0.0 npm
|
||||||
proxy-from-env 1.1.0 npm
|
proxy-from-env 1.1.0 npm
|
||||||
@@ -519,7 +521,7 @@ requires-port 1.0.0
|
|||||||
restructuredtext 1.0.0 npm
|
restructuredtext 1.0.0 npm
|
||||||
retry-request 4.2.2 npm
|
retry-request 4.2.2 npm
|
||||||
rimraf 3.0.2 npm
|
rimraf 3.0.2 npm
|
||||||
rotating-file-stream 3.0.0 npm
|
rotating-file-stream 3.1.0 npm
|
||||||
router 2.0.0-alpha.1 npm
|
router 2.0.0-alpha.1 npm
|
||||||
ruby 1.0.0 npm
|
ruby 1.0.0 npm
|
||||||
rust 1.0.0 npm
|
rust 1.0.0 npm
|
||||||
@@ -554,8 +556,7 @@ socks 2.6.1
|
|||||||
socks-proxy-agent 5.0.0 npm
|
socks-proxy-agent 5.0.0 npm
|
||||||
socks-proxy-agent 5.0.1 npm
|
socks-proxy-agent 5.0.1 npm
|
||||||
source-map 0.6.1 npm
|
source-map 0.6.1 npm
|
||||||
spdlog 0.13.6 npm
|
split2 4.2.0 npm
|
||||||
split2 4.1.0 npm
|
|
||||||
sql 1.0.0 npm
|
sql 1.0.0 npm
|
||||||
statuses 1.5.0 npm
|
statuses 1.5.0 npm
|
||||||
stream-events 1.0.5 npm
|
stream-events 1.0.5 npm
|
||||||
@@ -577,7 +578,7 @@ tar 1.34+dfsg-1ubuntu0.1.22.04.1
|
|||||||
tar 6.1.11 npm
|
tar 6.1.11 npm
|
||||||
tar-fs 2.1.1 npm
|
tar-fs 2.1.1 npm
|
||||||
tar-stream 2.2.0 npm
|
tar-stream 2.2.0 npm
|
||||||
tas-client-umd 0.1.6 npm
|
tas-client-umd 0.1.8 npm
|
||||||
teeny-request 7.2.0 npm
|
teeny-request 7.2.0 npm
|
||||||
theme-abyss 1.0.0 npm
|
theme-abyss 1.0.0 npm
|
||||||
theme-defaults 1.0.0 npm
|
theme-defaults 1.0.0 npm
|
||||||
@@ -598,9 +599,9 @@ tunnel-agent 0.6.0
|
|||||||
type-check 0.3.2 npm
|
type-check 0.3.2 npm
|
||||||
type-is 1.6.18 npm
|
type-is 1.6.18 npm
|
||||||
typescript 1.0.0 npm
|
typescript 1.0.0 npm
|
||||||
typescript 4.9.5 npm
|
typescript 5.0.4 npm
|
||||||
typescript-language-features 1.0.0 npm
|
typescript-language-features 1.0.0 npm
|
||||||
tzdata 2023c-0ubuntu0.22.04.0 deb
|
tzdata 2023c-0ubuntu0.22.04.1 deb
|
||||||
ubuntu-keyring 2021.03.26 deb
|
ubuntu-keyring 2021.03.26 deb
|
||||||
universalify 0.1.2 npm
|
universalify 0.1.2 npm
|
||||||
unpipe 1.0.0 npm
|
unpipe 1.0.0 npm
|
||||||
@@ -611,17 +612,16 @@ utils-merge 1.0.1
|
|||||||
uuid 8.3.2 npm
|
uuid 8.3.2 npm
|
||||||
vary 1.1.2 npm
|
vary 1.1.2 npm
|
||||||
vb 1.0.0 npm
|
vb 1.0.0 npm
|
||||||
vm2 3.9.11 npm
|
vm2 3.9.19 npm
|
||||||
vscode-css-languageserver 1.0.0 npm
|
vscode-css-languageserver 1.0.0 npm
|
||||||
vscode-extensions 0.0.1 npm
|
vscode-extensions 0.0.1 npm
|
||||||
vscode-html-languageserver 1.0.0 npm
|
vscode-html-languageserver 1.0.0 npm
|
||||||
vscode-js-profile-table 1.0.3 npm
|
vscode-js-profile-table 1.0.3 npm
|
||||||
vscode-json-languageserver 1.3.4 npm
|
vscode-json-languageserver 1.3.4 npm
|
||||||
vscode-markdown-languageserver 0.3.0-alpha.4 npm
|
vscode-markdown-languageserver 0.3.0 npm
|
||||||
vscode-oniguruma 1.7.0 npm
|
vscode-oniguruma 1.7.0 npm
|
||||||
vscode-proxy-agent 0.12.0 npm
|
|
||||||
vscode-regexpp 3.1.0 npm
|
vscode-regexpp 3.1.0 npm
|
||||||
vscode-reh 1.76.1 npm
|
vscode-reh 1.78.2 npm
|
||||||
vscode-textmate 9.0.0 npm
|
vscode-textmate 9.0.0 npm
|
||||||
vscode-theme-seti 1.0.0 npm
|
vscode-theme-seti 1.0.0 npm
|
||||||
webidl-conversions 3.0.1 npm
|
webidl-conversions 3.0.1 npm
|
||||||
@@ -631,24 +631,26 @@ wide-align 1.1.5
|
|||||||
word-wrap 1.2.3 npm
|
word-wrap 1.2.3 npm
|
||||||
wrap-ansi 7.0.0 npm
|
wrap-ansi 7.0.0 npm
|
||||||
wrappy 1.0.2 npm
|
wrappy 1.0.2 npm
|
||||||
ws 8.2.0 npm
|
ws 8.13.0 npm
|
||||||
xauth 1:1.1-1build2 deb
|
xauth 1:1.1-1build2 deb
|
||||||
xdg-basedir 4.0.0 npm
|
xdg-basedir 4.0.0 npm
|
||||||
xml 1.0.0 npm
|
xml 1.0.0 npm
|
||||||
xregexp 2.0.0 npm
|
xregexp 2.0.0 npm
|
||||||
xterm 5.2.0-beta.29 npm
|
xterm 5.2.0-beta.35 npm
|
||||||
xterm-addon-canvas 0.4.0-beta.7 npm
|
xterm-addon-canvas 0.4.0-beta.9 npm
|
||||||
xterm-addon-search 0.11.0 npm
|
xterm-addon-search 0.11.0 npm
|
||||||
xterm-addon-serialize 0.9.0 npm
|
xterm-addon-serialize 0.9.0 npm
|
||||||
xterm-addon-unicode11 0.5.0 npm
|
xterm-addon-unicode11 0.5.0 npm
|
||||||
xterm-addon-webgl 0.15.0-beta.7 npm
|
xterm-addon-webgl 0.15.0-beta.8 npm
|
||||||
xterm-headless 5.2.0-beta.29 npm
|
xterm-headless 5.2.0-beta.35 npm
|
||||||
y18n 5.0.8 npm
|
y18n 5.0.8 npm
|
||||||
yallist 3.1.1 npm
|
yallist 3.1.1 npm
|
||||||
yallist 4.0.0 npm
|
yallist 4.0.0 npm
|
||||||
yaml 1.0.0 npm
|
yaml 1.0.0 npm
|
||||||
yargs 16.2.0 npm
|
yargs 16.2.0 npm
|
||||||
|
yargs 17.7.2 npm
|
||||||
yargs-parser 20.2.9 npm
|
yargs-parser 20.2.9 npm
|
||||||
|
yargs-parser 21.1.1 npm
|
||||||
yauzl 2.10.0 npm
|
yauzl 2.10.0 npm
|
||||||
yazl 2.4.3 npm
|
yazl 2.4.3 npm
|
||||||
zlib1g 1:1.2.11.dfsg-2ubuntu9.2 deb
|
zlib1g 1:1.2.11.dfsg-2ubuntu9.2 deb
|
||||||
|
|||||||
Reference in New Issue
Block a user