Non legacy (#33)

* disable legacy flag for each addon
* build.json for each addon
* update addons
This commit is contained in:
Arne Petersen
2020-02-20 03:16:31 +01:00
committed by GitHub
parent 23a46adf0e
commit d24589dae4
37 changed files with 264 additions and 61 deletions

View File

@@ -3,6 +3,7 @@
parameters:
addon: ''
arch: ''
additionalArgs: ''
steps:
- script: sudo docker login -u $(dockerUser) -p $(dockerPassword)
@@ -15,5 +16,5 @@ steps:
-v /run/docker.sock:/run/docker.sock:rw -v $(pwd):/data:ro \
homeassistant/amd64-builder:$(versionBuilder) \
--addon ${{ parameters.arch }} -t /data/${{ parameters.addon }} \
--docker-hub petersendev --docker-hub-check
--docker-hub petersendev --docker-hub-check ${{ parameters.additionalArgs }}
displayName: 'Build ${{ parameters.addon }}'

View File

@@ -39,6 +39,7 @@ async function run(opts: { patch: boolean })
}
const configPath = path.join(root, addon, "config.json");
const buildJsonPath = path.join(root, addon, "build.json");
const config = await fs.readJSONAsync(configPath);
let version = semver.valid(config.version);
if (!version)
@@ -51,7 +52,7 @@ async function run(opts: { patch: boolean })
if (!config.maintenance || !config.maintenance.github_release)
{
console.log(chalk.yellow("no valid maintenace section found, skipping"));
console.log(chalk.yellow("no valid maintenance section found, skipping"));
continue;
}
@@ -61,11 +62,26 @@ async function run(opts: { patch: boolean })
const addonPath = path.join(root, addon);
const changelogPath = path.join(addonPath, "CHANGELOG.md");
const dockerFilePath = path.join(addonPath, "Dockerfile");
const dockerFile = (await fs.readFileAsync(dockerFilePath)).toString();
const dockerBaseImageLine = dockerFile.split("\n")[0];
const parts = dockerBaseImageLine.split(":");
const image = parts[0].replace("FROM ", "");
const tag = parts[1];
let image: string;
let tag: string;
let dockerFile: string;
const build_json = (await fs.existsAsync(buildJsonPath)) ? await fs.readJSONAsync(buildJsonPath) : null;
if (!build_json)
{
dockerFile = (await fs.readFileAsync(dockerFilePath)).toString();
const dockerBaseImageLine = dockerFile.split("\n")[0];
const parts = dockerBaseImageLine.split(":");
image = parts[0].replace("FROM ", "");
tag = parts[1];
}
else
{
image = build_json.build_from_template.image;
tag = build_json.build_from_template.version;
}
const releaseInfo = await request({
uri: `${config.maintenance.github_release}/releases/latest`,
@@ -95,6 +111,7 @@ async function run(opts: { patch: boolean })
if (tag == releaseInfo.tag_name)
{
//TODO: different output for build.json usage
console.log(chalk.greenBright(`base image ${image}:${chalk.magenta(coloredTag)} is up-to-date`))
}
else
@@ -119,8 +136,21 @@ async function run(opts: { patch: boolean })
}
else
{
console.log(chalk.yellowBright(`updating base image from ${image}:${chalk.magenta(coloredTag)} to ${image}:${chalk.magenta(newColoredTag)}`));
await fs.writeFileAsync(dockerFilePath, dockerFile.replace(`${image}:${tag}`, `${image}:${releaseInfo.tag_name}`));
if (!build_json)
{
console.log(chalk.yellowBright(`updating base image from ${image}:${chalk.magenta(coloredTag)} to ${image}:${chalk.magenta(newColoredTag)}`));
await fs.writeFileAsync(dockerFilePath, dockerFile.replace(`${image}:${tag}`, `${image}:${releaseInfo.tag_name}`));
}
else
{
console.log(chalk.yellowBright(`updating base images in build.json from ${image}:{arch}-${chalk.magenta(coloredTag)} to ${image}:{arch}-${chalk.magenta(newColoredTag)}`));
build_json.build_from_template.version = releaseInfo.tag_name;
for (let arch in build_json.build_from)
{
build_json.build_from[arch] = build_json.build_from[arch].replace(tag, releaseInfo.tag_name);
}
await fs.writeJSONAsync(buildJsonPath, build_json, { spaces: 4 });
}
const newVersion = semver.inc(version, minorUpgrade ? "minor" : "patch");
console.log(chalk.yellow(`bumping version from ${chalk.cyanBright(version)} to ${chalk.cyanBright(newVersion)}`));

View File

@@ -5,7 +5,7 @@ trigger:
variables:
versionHadolint: 'v1.16.3'
versionBuilder: '2.0'
versionBuilder: 'latest'
jobs:
@@ -39,7 +39,7 @@ jobs:
displayName: 'Run JQ'
- job: 'znc'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('JQ'))
condition: and(succeeded('Hadolint'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'JQ'
@@ -49,10 +49,12 @@ jobs:
- template: .azure-pipelines/addon-template.yml
parameters:
addon: 'znc'
arch: '--all'
arch: '--armhf --amd64 --aarch64'
${{ if ne(variables['Build.SourceBranchName'], 'master') }}:
additionalArgs: --test
- job: 'hydra2'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('JQ'))
condition: and(succeeded('Hadolint'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'JQ'
@@ -62,10 +64,12 @@ jobs:
- template: .azure-pipelines/addon-template.yml
parameters:
addon: 'hydra2'
arch: '--all'
arch: '--armhf --amd64 --aarch64'
${{ if ne(variables['Build.SourceBranchName'], 'master') }}:
additionalArgs: --test
- job: 'nzbget'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('JQ'))
condition: and(succeeded('Hadolint'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'JQ'
@@ -75,10 +79,12 @@ jobs:
- template: .azure-pipelines/addon-template.yml
parameters:
addon: 'nzbget'
arch: '--all'
arch: '--armhf --amd64 --aarch64'
${{ if ne(variables['Build.SourceBranchName'], 'master') }}:
additionalArgs: --test
- job: 'sonarr'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('JQ'))
condition: and(succeeded('Hadolint'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'JQ'
@@ -88,10 +94,12 @@ jobs:
- template: .azure-pipelines/addon-template.yml
parameters:
addon: 'sonarr'
arch: '--all'
arch: '--armhf --amd64 --aarch64'
${{ if ne(variables['Build.SourceBranchName'], 'master') }}:
additionalArgs: --test
- job: 'radarr'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('JQ'))
condition: and(succeeded('Hadolint'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'JQ'
@@ -101,10 +109,12 @@ jobs:
- template: .azure-pipelines/addon-template.yml
parameters:
addon: 'radarr'
arch: '--all'
arch: '--armhf --amd64 --aarch64'
${{ if ne(variables['Build.SourceBranchName'], 'master') }}:
additionalArgs: --test
- job: 'emby'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('JQ'))
condition: and(succeeded('Hadolint'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'JQ'
@@ -114,10 +124,12 @@ jobs:
- template: .azure-pipelines/addon-template.yml
parameters:
addon: 'emby'
arch: '--all'
arch: '--armhf --amd64 --aarch64'
${{ if ne(variables['Build.SourceBranchName'], 'master') }}:
additionalArgs: --test
- job: 'jellyfin'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('JQ'))
condition: and(succeeded('Hadolint'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'JQ'
@@ -127,10 +139,12 @@ jobs:
- template: .azure-pipelines/addon-template.yml
parameters:
addon: 'jellyfin'
arch: '--all'
arch: '--armhf --amd64 --aarch64'
${{ if ne(variables['Build.SourceBranchName'], 'master') }}:
additionalArgs: --test
- job: 'transmission_openvpn'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('JQ'))
condition: and(succeeded('Hadolint'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'JQ'
@@ -140,10 +154,12 @@ jobs:
- template: .azure-pipelines/addon-template.yml
parameters:
addon: 'transmission-openvpn'
arch: '--all'
arch: '--amd64'
${{ if ne(variables['Build.SourceBranchName'], 'master') }}:
additionalArgs: --test
- job: 'jackett'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('JQ'))
condition: and(succeeded('Hadolint'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'JQ'
@@ -153,10 +169,12 @@ jobs:
- template: .azure-pipelines/addon-template.yml
parameters:
addon: 'jackett'
arch: '--all'
arch: '--armhf --amd64 --aarch64'
${{ if ne(variables['Build.SourceBranchName'], 'master') }}:
additionalArgs: --test
- job: 'transmission_magnet_redirect'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('JQ'))
condition: and(succeeded('Hadolint'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'JQ'
@@ -166,4 +184,6 @@ jobs:
- template: .azure-pipelines/addon-template.yml
parameters:
addon: 'transmission-magnet-redirect'
arch: '--all'
arch: '--amd64'
${{ if ne(variables['Build.SourceBranchName'], 'master') }}:
additionalArgs: --test

View File

@@ -1,4 +1,6 @@
FROM linuxserver/emby:4.3.1.0-ls26
ARG BUILD_FROM
# hadolint ignore=DL3006
FROM $BUILD_FROM
RUN sed -i "s|/config|/emby|g" /etc/services.d/emby/run \
&& sed -i "s|/config|/emby|g" /etc/cont-init.d/30-config

13
emby/build.json Normal file
View File

@@ -0,0 +1,13 @@
{
"build_from_template": {
"image": "linuxserver/emby",
"version": "4.3.1.0-ls26"
},
"build_from": {
"armhf": "linuxserver/emby:arm32v7-4.3.1.0-ls26",
"aarch64": "linuxserver/emby:arm64v8-4.3.1.0-ls26",
"amd64": "linuxserver/emby:amd64-4.3.1.0-ls26"
},
"squash": false,
"args": {}
}

View File

@@ -2,7 +2,6 @@
"name": "emby",
"version": "0.1.0",
"slug": "emby",
"legacy": true,
"maintenance": {
"github_release": "https://github.com/linuxserver/docker-emby",
"version_regex": "(\\d+\\.\\d+\\.\\d+.\\d+)-(ls\\d+)"

View File

@@ -1,3 +1,7 @@
## 0.11.0
- Update hydra2 to 2.13.14 (linuxserver/hydra2:v2.13.14-ls59)
## 0.10.0
- Update hydra2 to 2.12.4 (linuxserver/hydra2:v2.12.4-ls55)

View File

@@ -1,4 +1,6 @@
FROM linuxserver/hydra2:v2.12.4-ls55
ARG BUILD_FROM
# hadolint ignore=DL3006
FROM $BUILD_FROM
# use /data instead of /config for hass.io environment
RUN sed -i "s|/config|/config/hydra2|g" /etc/services.d/nzbhydra2/run \

13
hydra2/build.json Normal file
View File

@@ -0,0 +1,13 @@
{
"build_from_template": {
"image": "linuxserver/hydra2",
"version": "v2.13.14-ls59"
},
"build_from": {
"armhf": "linuxserver/hydra2:arm32v7-v2.13.14-ls59",
"aarch64": "linuxserver/hydra2:arm64v8-v2.13.14-ls59",
"amd64": "linuxserver/hydra2:amd64-v2.13.14-ls59"
},
"squash": false,
"args": {}
}

View File

@@ -1,8 +1,7 @@
{
"name": "hydra2",
"version": "0.10.0",
"version": "0.11.0",
"slug": "hydra2",
"legacy": true,
"maintenance": {
"github_release": "https://github.com/linuxserver/docker-hydra2",
"version_regex": "v(\\d+\\.\\d+\\.\\d+)-(ls\\d+)"

View File

@@ -1,3 +1,7 @@
## 0.3.0
- Update jackett to 0.13.127 (linuxserver/jackett:v0.13.127-ls54)
## 0.2.0
- Update jackett to 0.12.1638 (linuxserver/jackett:v0.12.1638-ls51)

View File

@@ -1,4 +1,6 @@
FROM linuxserver/jackett:v0.12.1638-ls51
ARG BUILD_FROM
# hadolint ignore=DL3006
FROM $BUILD_FROM
# use /data instead of /config for hass.io environment
RUN sed -i "s|/config|/config/jackett|g" /etc/cont-init.d/30-config

13
jackett/build.json Normal file
View File

@@ -0,0 +1,13 @@
{
"build_from_template": {
"image": "linuxserver/jackett",
"version": "v0.13.127-ls54"
},
"build_from": {
"armhf": "linuxserver/jackett:arm32v7-v0.13.127-ls54",
"aarch64": "linuxserver/jackett:arm64v8-v0.13.127-ls54",
"amd64": "linuxserver/jackett:amd64-v0.13.127-ls54"
},
"squash": false,
"args": {}
}

View File

@@ -1,8 +1,7 @@
{
"name": "jackett",
"version": "0.2.0",
"version": "0.3.0",
"slug": "jackett",
"legacy": true,
"maintenance": {
"github_release": "https://github.com/linuxserver/docker-jackett",
"version_regex": "v(\\d+\\.\\d+\\.\\d+)-(ls\\d+)"

View File

@@ -1,4 +1,6 @@
FROM linuxserver/jellyfin:v10.4.3-ls29
ARG BUILD_FROM
# hadolint ignore=DL3006
FROM $BUILD_FROM
RUN sed -i "s|/config/data|/share/jellyfin/data|g" /etc/services.d/jellyfin/run \
&& sed -i "s|/config/log|/share/jellyfin/log|g" /etc/services.d/jellyfin/run \

13
jellyfin/build.json Normal file
View File

@@ -0,0 +1,13 @@
{
"build_from_template": {
"image": "linuxserver/jellyfin",
"version": "v10.4.3-ls29"
},
"build_from": {
"armhf": "linuxserver/jellyfin:arm32v7-v10.4.3-ls29",
"aarch64": "linuxserver/jellyfin:arm64v8-v10.4.3-ls29",
"amd64": "linuxserver/jellyfin:amd64-v10.4.3-ls29"
},
"squash": false,
"args": {}
}

View File

@@ -2,7 +2,6 @@
"name": "jellyfin",
"version": "0.2.0",
"slug": "jellyfin",
"legacy": true,
"maintenance": {
"github_release": "https://github.com/linuxserver/docker-jellyfin",
"version_regex": "v(\\d+\\.\\d+\\.\\d+)-(ls\\d+)"

View File

@@ -1,4 +1,6 @@
FROM linuxserver/nzbget:v21.0-ls16
ARG BUILD_FROM
# hadolint ignore=DL3006
FROM $BUILD_FROM
# use /data instead of /config for hass.io environment
RUN sed -i "s|/config|/config/nzbget|g" /etc/services.d/nzbget/run \

13
nzbget/build.json Normal file
View File

@@ -0,0 +1,13 @@
{
"build_from_template": {
"image": "linuxserver/nzbget",
"version": "v21.0-ls16"
},
"build_from": {
"armhf": "linuxserver/nzbget:arm32v7-v21.0-ls16",
"aarch64": "linuxserver/nzbget:arm64v8-v21.0-ls16",
"amd64": "linuxserver/nzbget:amd64-v21.0-ls16"
},
"squash": false,
"args": {}
}

View File

@@ -2,7 +2,6 @@
"name": "nzbget",
"version": "0.1.2",
"slug": "nzbget",
"legacy": true,
"maintenance": {
"github_release": "https://github.com/linuxserver/docker-nzbget",
"version_regex": "v(\\d+\\.\\d+\\.?\\d*)-(ls\\d+)"

View File

@@ -1,3 +1,7 @@
## 0.4.0
- Update radarr to 0.2.0.1480 (linuxserver/radarr:v0.2.0.1480-ls51)
## 0.3.2
- set snapshot_exclude for logs and MediaCover

View File

@@ -1,4 +1,6 @@
FROM linuxserver/radarr:v0.2.0.1450-ls46
ARG BUILD_FROM
# hadolint ignore=DL3006
FROM $BUILD_FROM
# use /data instead of /config for hass.io environment
RUN sed -i "s|/config|/config/radarr|g" /etc/services.d/radarr/run \

13
radarr/build.json Normal file
View File

@@ -0,0 +1,13 @@
{
"build_from_template": {
"image": "linuxserver/radarr",
"version": "v0.2.0.1480-ls51"
},
"build_from": {
"armhf": "linuxserver/radarr:arm32v7-v0.2.0.1480-ls51",
"aarch64": "linuxserver/radarr:arm64v8-v0.2.0.1480-ls51",
"amd64": "linuxserver/radarr:amd64-v0.2.0.1480-ls51"
},
"squash": false,
"args": {}
}

View File

@@ -1,8 +1,7 @@
{
"name": "radarr",
"version": "0.3.2",
"version": "0.4.0",
"slug": "radarr",
"legacy": true,
"maintenance": {
"github_release": "https://github.com/linuxserver/docker-radarr",
"version_regex": "v(\\d+\\.\\d+\\.\\d+\\.\\d+)-(ls\\d+)"
@@ -43,4 +42,4 @@
"**/MediaCover/*"
],
"image": "petersendev/hassio-radarr-{arch}"
}
}

View File

@@ -1,4 +1,6 @@
FROM linuxserver/sonarr:2.0.0.5338-ls31
ARG BUILD_FROM
# hadolint ignore=DL3006
FROM $BUILD_FROM
# use /data instead of /config for hass.io environment
RUN sed -i "s|/config|/config/sonarr|g" /etc/services.d/sonarr/run \

13
sonarr/build.json Normal file
View File

@@ -0,0 +1,13 @@
{
"build_from_template": {
"image": "linuxserver/sonarr",
"version": "2.0.0.5338-ls31"
},
"build_from": {
"armhf": "linuxserver/sonarr:arm32v7-2.0.0.5338-ls31",
"aarch64": "linuxserver/sonarr:arm64v8-2.0.0.5338-ls31",
"amd64": "linuxserver/sonarr:amd64-2.0.0.5338-ls31"
},
"squash": false,
"args": {}
}

View File

@@ -2,7 +2,6 @@
"name": "sonarr",
"version": "0.2.2",
"slug": "sonarr",
"legacy": true,
"maintenance": {
"github_release": "https://github.com/linuxserver/docker-sonarr",
"version_regex": "(\\d+\\.\\d+\\.\\d+\\.\\d+)-(ls\\d+)"

View File

@@ -1 +1,3 @@
FROM petersendev/transmission-magnet-redirect:0.1.2
ARG BUILD_FROM
# hadolint ignore=DL3006
FROM $BUILD_FROM

View File

@@ -0,0 +1,11 @@
{
"build_from_template": {
"image": "petersendev/transmission-magnet-redirect",
"version": "0.1.2"
},
"build_from": {
"amd64": "petersendev/transmission-magnet-redirect:0.1.2"
},
"squash": false,
"args": {}
}

View File

@@ -2,7 +2,6 @@
"name": "transmission-magnet-redirect",
"version": "0.1.2",
"slug": "transmission-magnet-redirect",
"legacy": true,
"maintenance": {
"github_release": "https://github.com/petersendev/docker-transmission-magnet-redirect",
"version_regex": "(\\d+\\.\\d\\.\\d)"
@@ -11,9 +10,7 @@
"url": "https://github.com/petersendev/hassio-addons/transmission-magnet-redirect",
"startup": "services",
"arch": [
"aarch64",
"amd64",
"armhf"
"amd64"
],
"ports": {
"9092/tcp": 9092

View File

@@ -1,3 +1,7 @@
## 0.2.0
- Update transmission-openvpn to 2.10 (haugene/transmission-openvpn:2.10)
## 0.1.0
- transmission-openvpn 2.7 (haugene/transmission-openvpn:2.7)

View File

@@ -1,4 +1,6 @@
FROM haugene/transmission-openvpn:2.7
ARG BUILD_FROM
# hadolint ignore=DL3006
FROM $BUILD_FROM
RUN usermod -d /config-internal abc \
&& sed -i "s|/config|/config-internal|g" /etc/openvpn/adjustConfigs.sh \

View File

@@ -0,0 +1,13 @@
{
"build_from_template": {
"image": "haugene/transmission-openvpn",
"version": "2.10"
},
"build_from": {
"armhf": "haugene/transmission-openvpn:2.10-armhf",
"aarch64": "haugene/transmission-openvpn:2.10-arm64",
"amd64": "haugene/transmission-openvpn:2.10-alpine"
},
"squash": false,
"args": {}
}

View File

@@ -1,12 +1,11 @@
{
"name": "transmission-openvpn",
"version": "0.1.0",
"version": "0.2.0",
"slug": "transmission-openvpn",
"legacy": true,
"maintenance": {
"github_release": "https://github.com/haugene/docker-transmission-openvpn",
"version_regex": "(\\d+\\.\\d)",
"release_regex": "v(\\d+\\.\\d)"
"version_regex": "(\\d+\\.\\d+)",
"release_regex": "v(\\d+\\.\\d+)"
},
"description": "OpenVPN and Transmission with WebUI",
"url": "https://github.com/petersendev/hassio-addons/transmission-openvpn",
@@ -61,4 +60,4 @@
"TRANSMISSION_HOME": "/share/transmission-openvpn/transmission-home"
},
"image": "petersendev/hassio-transmission-openvpn-{arch}"
}
}

View File

@@ -1,4 +1,6 @@
FROM linuxserver/znc:znc-1.7.5-ls23
ARG BUILD_FROM
# hadolint ignore=DL3006
FROM $BUILD_FROM
# use /data instead of /config for hass.io environment
RUN sed -i "s|/config|/config/znc|g" /etc/services.d/znc/run \

13
znc/build.json Normal file
View File

@@ -0,0 +1,13 @@
{
"build_from_template": {
"image": "linuxserver/znc",
"version": "znc-1.7.5-ls23"
},
"build_from": {
"armhf": "linuxserver/znc:arm32v7-znc-1.7.5-ls23",
"aarch64": "linuxserver/znc:arm64v8-znc-1.7.5-ls23",
"amd64": "linuxserver/znc:amd64-znc-1.7.5-ls23"
},
"squash": false,
"args": {}
}

View File

@@ -2,7 +2,6 @@
"name": "znc",
"version": "0.3.0",
"slug": "znc",
"legacy": true,
"maintenance": {
"github_release": "https://github.com/linuxserver/docker-znc",
"version_regex": "(\\d+\\.\\d+\\.\\d+-?\\w*)-(ls\\d+)"