Skip to content

Commit 8a2b1f8

Browse files
authored
Merge pull request #9 from linuxserver/multi
add aarch64 image, update external trigger
2 parents 929516d + bcd6776 commit 8a2b1f8

7 files changed

Lines changed: 79 additions & 31 deletions

File tree

.github/workflows/external_trigger.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ jobs:
2929
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
3030
echo "> External trigger running off of main branch. To disable this trigger, add \`yaak_main\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
3131
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
32-
EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/mountain-loop/yaak/releases/latest" | jq -r '. | .tag_name')
33-
echo "Type is \`github_stable\`" >> $GITHUB_STEP_SUMMARY
32+
EXT_RELEASE=$(curl -u ${{ secrets.CR_USER }}:${{ secrets.CR_PAT }} -sX GET https://api.github.com/repos/mountain-loop/yaak/releases | jq -r '.[] | select(.prerelease != true) | select(.tag_name | contains("yaak-cli") | not) | .tag_name' | sort -rV | head -1)
33+
echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY
3434
if grep -q "^yaak_main_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
3535
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
3636
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
@@ -110,6 +110,12 @@ jobs:
110110
echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
111111
exit 0
112112
else
113+
assets=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/mountain-loop/yaak/releases/tags/${EXT_RELEASE}" | jq -r '.assets[].browser_download_url')
114+
if grep -q "arm64.deb$" <<< "${assets}" && grep -q "amd64.deb$" <<< "${assets}"; then
115+
artifacts_found="true"
116+
else
117+
artifacts_found="false"
118+
fi
113119
if [[ "${artifacts_found}" == "false" ]]; then
114120
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
115121
echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY

Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ RUN \
2121
echo "**** install yaak ****" && \
2222
apt-get update && \
2323
if [ -z ${YAAK_RELEASE+x} ]; then \
24-
YAAK_RELEASE=$(curl -sX GET "https://api.github.com/repos/mountain-loop/yaak/releases/latest" \
25-
| jq -r .tag_name); \
24+
YAAK_RELEASE=$(curl -sX GET https://api.github.com/repos/mountain-loop/yaak/releases \
25+
| jq -r '.[] | select(.prerelease != true) | select(.tag_name | contains("yaak-cli") | not) | .tag_name' \
26+
| sort -rV | head -1); \
2627
fi && \
2728
YAAK_URL=$(curl -sX GET "https://api.github.com/repos/mountain-loop/yaak/releases/tags/${YAAK_RELEASE}" | jq -r '.assets[].browser_download_url' \
2829
| grep "amd64" | grep ".deb$") && \

Dockerfile.aarch64

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# syntax=docker/dockerfile:1
2+
3+
FROM ghcr.io/linuxserver/baseimage-selkies:arm64v8-ubuntunoble
4+
5+
# set version label
6+
ARG BUILD_DATE
7+
ARG VERSION
8+
ARG YAAK_RELEASE
9+
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
10+
LABEL maintainer="aptalca"
11+
12+
ENV \
13+
HOME="/config" \
14+
TITLE="Yaak"
15+
16+
RUN \
17+
echo "**** add icon ****" && \
18+
curl -o \
19+
/usr/share/selkies/www/icon.png \
20+
https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/yaak-icon.png && \
21+
echo "**** install yaak ****" && \
22+
apt-get update && \
23+
if [ -z ${YAAK_RELEASE+x} ]; then \
24+
YAAK_RELEASE=$(curl -sX GET https://api.github.com/repos/mountain-loop/yaak/releases \
25+
| jq -r '.[] | select(.prerelease != true) | select(.tag_name | contains("yaak-cli") | not) | .tag_name' \
26+
| sort -rV | head -1); \
27+
fi && \
28+
YAAK_URL=$(curl -sX GET "https://api.github.com/repos/mountain-loop/yaak/releases/tags/${YAAK_RELEASE}" | jq -r '.assets[].browser_download_url' \
29+
| grep "arm64" | grep ".deb$") && \
30+
curl -fo \
31+
/tmp/yaak.deb -L \
32+
"${YAAK_URL}" && \
33+
apt-get install -y --no-install-recommends \
34+
/tmp/yaak.deb && \
35+
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
36+
echo "**** cleanup ****" && \
37+
apt-get clean && \
38+
rm -rf \
39+
/tmp/* \
40+
/var/lib/apt/lists/* \
41+
/var/tmp/*
42+
43+
# add local files
44+
COPY root/ /

Jenkinsfile

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@ pipeline {
1919
DOCKERHUB_TOKEN=credentials('docker-hub-ci-pat')
2020
QUAYIO_API_TOKEN=credentials('quayio-repo-api-token')
2121
GIT_SIGNING_KEY=credentials('484fbca6-9a4f-455e-b9e3-97ac98785f5f')
22-
EXT_GIT_BRANCH = 'master'
23-
EXT_USER = 'mountain-loop'
24-
EXT_REPO = 'yaak'
2522
BUILD_VERSION_ARG = 'YAAK_RELEASE'
2623
LS_USER = 'linuxserver'
2724
LS_REPO = 'docker-yaak'
@@ -30,7 +27,7 @@ pipeline {
3027
DEV_DOCKERHUB_IMAGE = 'lsiodev/yaak'
3128
PR_DOCKERHUB_IMAGE = 'lspipepr/yaak'
3229
DIST_IMAGE = 'ubuntu'
33-
MULTIARCH = 'false'
30+
MULTIARCH = 'true'
3431
CI = 'true'
3532
CI_WEB = 'true'
3633
CI_PORT = '3001'
@@ -145,23 +142,16 @@ pipeline {
145142
/* ########################
146143
External Release Tagging
147144
######################## */
148-
// If this is a stable github release use the latest endpoint from github to determine the ext tag
149-
stage("Set ENV github_stable"){
150-
steps{
151-
script{
152-
env.EXT_RELEASE = sh(
153-
script: '''curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. | .tag_name' ''',
154-
returnStdout: true).trim()
155-
}
156-
}
157-
}
158-
// If this is a stable or devel github release generate the link for the build message
159-
stage("Set ENV github_link"){
160-
steps{
161-
script{
162-
env.RELEASE_LINK = 'https://github.com/' + env.EXT_USER + '/' + env.EXT_REPO + '/releases/tag/' + env.EXT_RELEASE
163-
}
164-
}
145+
// If this is a custom command to determine version use that command
146+
stage("Set tag custom bash"){
147+
steps{
148+
script{
149+
env.EXT_RELEASE = sh(
150+
script: ''' curl -sX GET https://api.github.com/repos/mountain-loop/yaak/releases | jq -r '.[] | select(.prerelease != true) | select(.tag_name | contains("yaak-cli") | not) | .tag_name' | sort -rV | head -1 ''',
151+
returnStdout: true).trim()
152+
env.RELEASE_LINK = 'custom_command'
153+
}
154+
}
165155
}
166156
// Sanitize the release tag and strip illegal docker or github characters
167157
stage("Sanitize tag"){
@@ -1030,7 +1020,7 @@ pipeline {
10301020
"type": "commit",\
10311021
"tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}'
10321022
echo "Pushing New release for Tag"
1033-
curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. |.body' > releasebody.json
1023+
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
10341024
jq -n \
10351025
--arg tag_name "$META_TAG" \
10361026
--arg target_commitish "main" \

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -574,6 +574,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
574574

575575
## Versions
576576

577+
* **11.03.26:** - Push aarch64 image. Update external trigger.
577578
* **28.12.25:** - Add Wayland init logic.
578579
* **29.07.25:** - Rebase to selkies. Breaking Change: HTTPS is now required. Either use a reverse proxy with SSL cert or direct connect to port 8181 with HTTPS.
579580
* **12.09.24:** - Initial release.

jenkins-vars.yml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,19 @@
22

33
# jenkins variables
44
project_name: docker-yaak
5-
external_type: github_stable
5+
external_type: na
6+
custom_version_command: "curl -sX GET https://api.github.com/repos/mountain-loop/yaak/releases | jq -r '.[] | select(.prerelease != true) | select(.tag_name | contains(\"yaak-cli\") | not) | .tag_name' | sort -rV | head -1"
67
release_type: stable
78
release_tag: latest
89
ls_branch: main
10+
external_artifact_check: |
11+
assets=$(curl -u "${{ '{{' }} secrets.CR_USER {{ '}}' }}:${{ '{{' }} secrets.CR_PAT {{ '}}' }}" -sX GET "https://api.github.com/repos/mountain-loop/yaak/releases/tags/${EXT_RELEASE}" | jq -r '.assets[].browser_download_url')
12+
if grep -q "arm64.deb$" <<< "${assets}" && grep -q "amd64.deb$" <<< "${assets}"; then
13+
artifacts_found="true"
14+
else
15+
artifacts_found="false"
16+
fi
917
repo_vars:
10-
- EXT_GIT_BRANCH = 'master'
11-
- EXT_USER = 'mountain-loop'
12-
- EXT_REPO = 'yaak'
1318
- BUILD_VERSION_ARG = 'YAAK_RELEASE'
1419
- LS_USER = 'linuxserver'
1520
- LS_REPO = 'docker-yaak'
@@ -18,7 +23,7 @@ repo_vars:
1823
- DEV_DOCKERHUB_IMAGE = 'lsiodev/yaak'
1924
- PR_DOCKERHUB_IMAGE = 'lspipepr/yaak'
2025
- DIST_IMAGE = 'ubuntu'
21-
- MULTIARCH = 'false'
26+
- MULTIARCH = 'true'
2227
- CI = 'true'
2328
- CI_WEB = 'true'
2429
- CI_PORT = '3001'

readme-vars.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ init_diagram: |
101101
"yaak:latest" <- Base Images
102102
# changelog
103103
changelogs:
104+
- {date: "11.03.26:", desc: "Push aarch64 image. Update external trigger."}
104105
- {date: "28.12.25:", desc: "Add Wayland init logic."}
105106
- {date: "29.07.25:", desc: "Rebase to selkies. Breaking Change: HTTPS is now required. Either use a reverse proxy with SSL cert or direct connect to port 8181 with HTTPS."}
106107
- {date: "12.09.24:", desc: "Initial release."}

0 commit comments

Comments
 (0)