Skip to content
This repository was archived by the owner on Jan 7, 2024. It is now read-only.

Commit 7d3cbaa

Browse files
authored
Merge pull request #7 from thelamer/5.8
Switching to new Base images, shift to arm32v7 tag.
2 parents 72abc18 + 1f9f7d3 commit 7d3cbaa

File tree

5 files changed

+67
-43
lines changed

5 files changed

+67
-43
lines changed

Dockerfile.aarch64

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
FROM lsiobase/ubuntu.arm64:xenial
2-
3-
# Add qemu to build on x86_64 systems
4-
COPY qemu-aarch64-static /usr/bin
1+
FROM lsiobase/ubuntu:arm64v8-xenial
52

63
# set version label
74
ARG BUILD_DATE

Dockerfile.armhf

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
FROM lsiobase/ubuntu.armhf:xenial
2-
3-
# Add qemu to build on x86_64 systems
4-
COPY qemu-arm-static /usr/bin
1+
FROM lsiobase/ubuntu:arm32v7-xenial
52

63
# set version label
74
ARG BUILD_DATE

Jenkinsfile

+61-32
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ pipeline {
122122
script{
123123
env.IMAGE = env.DOCKERHUB_IMAGE
124124
if (env.MULTIARCH == 'true') {
125-
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v6-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
125+
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
126126
} else {
127127
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
128128
}
@@ -140,7 +140,7 @@ pipeline {
140140
script{
141141
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
142142
if (env.MULTIARCH == 'true') {
143-
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v6-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
143+
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
144144
} else {
145145
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
146146
}
@@ -158,7 +158,7 @@ pipeline {
158158
script{
159159
env.IMAGE = env.PR_DOCKERHUB_IMAGE
160160
if (env.MULTIARCH == 'true') {
161-
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v6-' + 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
161+
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
162162
} else {
163163
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
164164
}
@@ -168,6 +168,35 @@ pipeline {
168168
}
169169
}
170170
}
171+
// Run ShellCheck
172+
stage('ShellCheck') {
173+
when {
174+
environment name: 'CI', value: 'true'
175+
}
176+
steps {
177+
withCredentials([
178+
string(credentialsId: 'spaces-key', variable: 'DO_KEY'),
179+
string(credentialsId: 'spaces-secret', variable: 'DO_SECRET')
180+
]) {
181+
script{
182+
env.SHELLCHECK_URL = 'https://lsio-ci.ams3.digitaloceanspaces.com/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml'
183+
}
184+
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
185+
sh '''#! /bin/bash
186+
set -e
187+
docker pull lsiodev/spaces-file-upload:latest
188+
docker run --rm \
189+
-e DESTINATION=\"${IMAGE}/${META_TAG}/shellcheck-result.xml\" \
190+
-e FILE_NAME="shellcheck-result.xml" \
191+
-e MIMETYPE="text/xml" \
192+
-v ${WORKSPACE}:/mnt \
193+
-e SECRET_KEY=\"${DO_SECRET}\" \
194+
-e ACCESS_KEY=\"${DO_KEY}\" \
195+
-t lsiodev/spaces-file-upload:latest \
196+
python /upload.py'''
197+
}
198+
}
199+
}
171200
// Use helper containers to render templated files
172201
stage('Update-Templates') {
173202
when {
@@ -242,7 +271,7 @@ pipeline {
242271
environment name: 'EXIT_STATUS', value: ''
243272
}
244273
steps {
245-
sh "docker build --no-cache -t ${IMAGE}:${META_TAG} \
274+
sh "docker build --no-cache --pull -t ${IMAGE}:${META_TAG} \
246275
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
247276
}
248277
}
@@ -255,7 +284,7 @@ pipeline {
255284
parallel {
256285
stage('Build X86') {
257286
steps {
258-
sh "docker build --no-cache -t ${IMAGE}:amd64-${META_TAG} \
287+
sh "docker build --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \
259288
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
260289
}
261290
}
@@ -278,13 +307,13 @@ pipeline {
278307
'''
279308
sh "curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static -o qemu-arm-static"
280309
sh "chmod +x qemu-*"
281-
sh "docker build --no-cache -f Dockerfile.armhf -t ${IMAGE}:arm32v6-${META_TAG} \
310+
sh "docker build --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
282311
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
283-
sh "docker tag ${IMAGE}:arm32v6-${META_TAG} lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}"
284-
sh "docker push lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}"
312+
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
313+
sh "docker push lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
285314
sh '''docker rmi \
286-
${IMAGE}:arm32v6-${META_TAG} \
287-
lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} '''
315+
${IMAGE}:arm32v7-${META_TAG} \
316+
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} '''
288317
}
289318
}
290319
}
@@ -307,7 +336,7 @@ pipeline {
307336
'''
308337
sh "curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static -o qemu-aarch64-static"
309338
sh "chmod +x qemu-*"
310-
sh "docker build --no-cache -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
339+
sh "docker build --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
311340
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
312341
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
313342
sh "docker push lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
@@ -337,13 +366,13 @@ pipeline {
337366
fi
338367
if [ "${DIST_IMAGE}" == "alpine" ]; then
339368
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
340-
apk info > packages && \
341-
apk info -v > versions && \
342-
paste -d " " packages versions > /tmp/package_versions.txt && \
369+
apk info -v > /tmp/package_versions.txt && \
370+
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
343371
chmod 777 /tmp/package_versions.txt'
344372
elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
345373
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
346-
apt list -qq --installed | cut -d" " -f1-2 > /tmp/package_versions.txt && \
374+
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
375+
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
347376
chmod 777 /tmp/package_versions.txt'
348377
fi
349378
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
@@ -423,9 +452,9 @@ pipeline {
423452
set -e
424453
docker pull lsiodev/ci:latest
425454
if [ "${MULTIARCH}" == "true" ]; then
426-
docker pull lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}
455+
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
427456
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
428-
docker tag lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6-${META_TAG}
457+
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
429458
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
430459
fi
431460
docker run --rm \
@@ -502,38 +531,38 @@ pipeline {
502531
'''
503532
sh '''#! /bin/bash
504533
if [ "${CI}" == "false" ]; then
505-
docker pull lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}
534+
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
506535
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
507-
docker tag lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6-${META_TAG}
536+
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
508537
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
509538
fi'''
510539
sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-5.8"
511-
sh "docker tag ${IMAGE}:arm32v6-${META_TAG} ${IMAGE}:arm32v6-5.8"
540+
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm32v7-5.8"
512541
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-5.8"
513542
sh "docker push ${IMAGE}:amd64-${META_TAG}"
514-
sh "docker push ${IMAGE}:arm32v6-${META_TAG}"
543+
sh "docker push ${IMAGE}:arm32v7-${META_TAG}"
515544
sh "docker push ${IMAGE}:arm64v8-${META_TAG}"
516545
sh "docker push ${IMAGE}:amd64-5.8"
517-
sh "docker push ${IMAGE}:arm32v6-5.8"
546+
sh "docker push ${IMAGE}:arm32v7-5.8"
518547
sh "docker push ${IMAGE}:arm64v8-5.8"
519548
sh "docker manifest push --purge ${IMAGE}:5.8 || :"
520-
sh "docker manifest create ${IMAGE}:5.8 ${IMAGE}:amd64-5.8 ${IMAGE}:arm32v6-5.8 ${IMAGE}:arm64v8-5.8"
521-
sh "docker manifest annotate ${IMAGE}:5.8 ${IMAGE}:arm32v6-5.8 --os linux --arch arm"
549+
sh "docker manifest create ${IMAGE}:5.8 ${IMAGE}:amd64-5.8 ${IMAGE}:arm32v7-5.8 ${IMAGE}:arm64v8-5.8"
550+
sh "docker manifest annotate ${IMAGE}:5.8 ${IMAGE}:arm32v7-5.8 --os linux --arch arm"
522551
sh "docker manifest annotate ${IMAGE}:5.8 ${IMAGE}:arm64v8-5.8 --os linux --arch arm64 --variant v8"
523552
sh "docker manifest push --purge ${IMAGE}:${META_TAG} || :"
524-
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v6-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
525-
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v6-${META_TAG} --os linux --arch arm"
553+
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
554+
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v7-${META_TAG} --os linux --arch arm"
526555
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8"
527556
sh "docker manifest push --purge ${IMAGE}:5.8"
528557
sh "docker manifest push --purge ${IMAGE}:${META_TAG}"
529558
sh '''docker rmi \
530559
${IMAGE}:amd64-${META_TAG} \
531560
${IMAGE}:amd64-5.8 \
532-
${IMAGE}:arm32v6-${META_TAG} \
533-
${IMAGE}:arm32v6-5.8 \
561+
${IMAGE}:arm32v7-${META_TAG} \
562+
${IMAGE}:arm32v7-5.8 \
534563
${IMAGE}:arm64v8-${META_TAG} \
535564
${IMAGE}:arm64v8-5.8 \
536-
lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} \
565+
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
537566
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} '''
538567
}
539568
}
@@ -604,7 +633,7 @@ pipeline {
604633
}
605634
steps {
606635
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
607-
-d '{"body": "I am a bot, here are the test results for this PR '${CI_URL}'"}' '''
636+
-d '{"body": "I am a bot, here are the test results for this PR: \\n'${CI_URL}' \\n'${SHELLCHECK_URL}'"}' '''
608637
}
609638
}
610639
}
@@ -619,12 +648,12 @@ pipeline {
619648
}
620649
else if (currentBuild.currentResult == "SUCCESS"){
621650
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
622-
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
651+
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
623652
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
624653
}
625654
else {
626655
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
627-
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
656+
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
628657
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
629658
}
630659
}

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ Find us at:
1212
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
1313
* [IRC](https://irc.linuxserver.io) - on freenode at `#linuxserver.io`. Our primary support channel is Discord.
1414
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
15-
* [Podcast](https://anchor.fm/linuxserverio) - on hiatus. Coming back soon (late 2018).
1615

1716
# [linuxserver/unifi-controller](https://github.com/linuxserver/docker-unifi-controller)
1817
[![](https://img.shields.io/discord/354974912613449730.svg?logo=discord&label=LSIO%20Discord&style=flat-square)](https://discord.gg/YWrKVTn)
@@ -40,7 +39,7 @@ The architectures supported by this image are:
4039
| :----: | --- |
4140
| x86-64 | amd64-latest |
4241
| arm64 | arm64v8-latest |
43-
| armhf | arm32v6-latest |
42+
| armhf | arm32v7-latest |
4443

4544

4645
## Usage
@@ -203,4 +202,5 @@ Below are the instructions for updating containers:
203202

204203
## Versions
205204

205+
* **23.03.19:** - Switching to new Base images, shift to arm32v7 tag.
206206
* **10.02.19:** - Initial release of new unifi-controller image with new tags and pipeline logic

readme-vars.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_
1212
available_architectures:
1313
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
1414
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
15-
- { arch: "{{ arch_armhf }}", tag: "arm32v6-latest"}
15+
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
1616

1717
# Optional Block
1818
optional_block_1: true
@@ -70,4 +70,5 @@ app_setup_block: |
7070
7171
# changelog
7272
changelogs:
73+
- { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
7374
- { date: "10.02.19:", desc: "Initial release of new unifi-controller image with new tags and pipeline logic" }

0 commit comments

Comments
 (0)