Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
9999957
feat(bareos): Added Bareos 24 images based on Ubuntu 24.04
dark-vex Oct 4, 2025
66d44e9
fix(bareos): Issue with keyring, Debian/Ubuntu have deprecated the us…
dark-vex Oct 4, 2025
ed3b4a9
fix(bareos): GPG key issue
dark-vex Oct 4, 2025
bbc45d2
Update lint job to use ubuntu-latest
dark-vex Nov 18, 2025
e3c0dc0
chore(gh-actions): Changed repo url and runner
dark-vex Nov 18, 2025
aed2d02
Update Docker push commands to use INPUT_REGISTRY
dark-vex Nov 18, 2025
e8dc99d
fix(ci): Image building
dark-vex Nov 19, 2025
5c25f16
fix(ci): test phase missing registry url
dark-vex Nov 19, 2025
9a74532
fix(ci): Missing inputs from secret
dark-vex Nov 19, 2025
f702c1d
feat(director): Add alpine 3.22 with Bareos 24
dark-vex Nov 21, 2025
1c181d9
chore(ci): Test bump
dark-vex Nov 21, 2025
7e16efe
chore(ci): Alpine Docker image
dark-vex Nov 21, 2025
fdbdc04
chore(ci): Alpine 20
dark-vex Nov 21, 2025
49aac7a
test
dark-vex Nov 21, 2025
cacf151
Create claude.yml
dark-vex Nov 21, 2025
48c9deb
Update claude.yml
dark-vex Nov 21, 2025
82d23c5
Update claude.yml
dark-vex Nov 21, 2025
ac988c4
Add Bareos 24 Alpine images for client, storage, webui, and api
github-actions[bot] Nov 21, 2025
8430c78
Fix Alpine build failure by adding edge repository for Bareos packages
github-actions[bot] Nov 21, 2025
60866ee
Update Dockerfile
dark-vex Nov 21, 2025
75eec3a
Update Dockerfile
dark-vex Nov 21, 2025
b154052
Fix Alpine build failure by using Alpine 3.16
github-actions[bot] Nov 21, 2025
503dc28
Merge pull request #13 from dark-vex/claude/issue-11-20251121-2300
dark-vex Nov 22, 2025
e5a579c
fix(bareos): Fix images, alpine does not have bareos v24 version on a…
dark-vex Nov 22, 2025
3bb9f3b
fix(ci): API test
dark-vex Nov 22, 2025
484b253
Update entrypoint.sh
dark-vex Nov 22, 2025
4af1f66
Update entrypoint.sh
dark-vex Nov 22, 2025
5a85dc9
fix(bareos): API v24
dark-vex Nov 22, 2025
eb813c3
ci
dark-vex Nov 22, 2025
95494b7
Update run-compose.yml
dark-vex Apr 16, 2026
bcd5e0e
fix(ci): update container name for Docker Compose V2 naming convention
dark-vex Apr 16, 2026
7224197
Merge pull request #14 from dark-vex/fix/run-compose-container-naming
dark-vex Apr 16, 2026
9db5d6a
fix(ci): upgrade mysql from 5.6 to 5.7 in alpine-mysql-v2 compose (#15)
dark-vex Apr 17, 2026
34ab934
Delete .github/workflows/claude.yml (#16)
dark-vex Apr 17, 2026
184eee6
feat: add bareos-packages/ from-source .deb builder for Ubuntu 22-24 …
dark-vex Apr 19, 2026
291b61f
fix(ci,lint): Fixed release name with lowercase letters (#20)
dark-vex Apr 19, 2026
57b279e
feat: add Bareos 22-ubuntu images, re-enable Ubuntu CI, add version s…
dark-vex Apr 19, 2026
236ac3d
docs: add fork PR policy constraint to CLAUDE.md (#21)
dark-vex Apr 20, 2026
03b11f7
chore(readme): Updated README file (#22)
dark-vex Apr 29, 2026
ee6a743
fix(ci): Fix bareos packages build, rely on Releases/x.x.x instead of…
dark-vex May 10, 2026
32ac39f
chore(deps): bump softprops/action-gh-release from 2 to 3 (#24)
dependabot[bot] May 10, 2026
184cddd
chore(deps): bump peter-evans/dockerhub-description from 4.0.0 to 5.0…
dependabot[bot] May 10, 2026
faf028d
chore(deps): bump docker/setup-qemu-action from 3 to 4 (#26)
dependabot[bot] May 10, 2026
6c9d467
fix(ci): Fix dockerhub action (#29)
dark-vex May 10, 2026
b987c08
chore(deps): bump actions/upload-artifact from 4 to 7 (#27)
dependabot[bot] May 10, 2026
b27fa42
chore(deps): bump actions/download-artifact from 4 to 8 (#28)
dependabot[bot] May 10, 2026
ca022fa
chore(bareos): Added missing releases and test CI/CD (#30)
dark-vex May 10, 2026
73c55d8
fix(ci/cd): Fix entrypoint.sh for avoid silent failures (#31)
dark-vex May 11, 2026
24a98f5
Fix/ci silent pass on empty build (#32)
dark-vex May 11, 2026
1b3bae4
Fix/ci silent pass on empty build (#33)
dark-vex May 11, 2026
b47b9a0
fix(ci/cd): Add set -x, printf debug, and image_prefix escape hatch
dark-vex May 12, 2026
9c23e27
chore(ci/cd): Remove debug output from push entrypoint
dark-vex May 12, 2026
7150346
chore: Document branch protection rule in CLAUDE.md (#35)
dark-vex May 12, 2026
f8f7d86
chore(deps): bump actions/checkout from 4 to 6 (#34)
dependabot[bot] May 27, 2026
eae4b68
feat: add Bareos 25 Ubuntu images (director, storage, client, webui) …
dark-vex Jun 1, 2026
76a7cf9
Added notes about dbdriver deprecation in Bareos 23
dark-vex Jun 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 79 additions & 0 deletions .agents/skills/add-bareos-version/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
name: add-bareos-version
description: Add a new Bareos version directory (Dockerfile + docker-entrypoint.sh) for a given component and flavor (alpine|ubuntu). Delegates all code generation to the ollama-orchestrator subagent. Use when the user asks to add support for Bareos N-ubuntu or N-alpine, or fill missing version/flavor combos. Also use when the user types "add Bareos 22 ubuntu" or "generate missing Bareos versions".
allowed-tools: [Read, Write, Edit, Glob, Grep, Bash, Agent]
---

# add-bareos-version skill

Generates missing Bareos Docker image directories using the ollama-orchestrator subagent.

## Upstream source table

See `references/upstream-sources.md` for the authoritative mapping of Bareos version → Alpine tag and Ubuntu repo URL. **Verify this table before generating** — do not assume; run the probe commands in that file if unsure.

## Workflow

### 1. Resolve inputs

Accept: a list of `{component, version, flavor}` tuples. Examples:

- "Add 22-ubuntu for all standard components" → four tuples: director-pgsql, storage, client, webui, each with version=22, flavor=ubuntu
- "Generate client/23-alpine" → one tuple

**Standard components** = director-pgsql, storage, client, webui. The api component uses a pip-pinned pattern; handle it separately only if explicitly requested.

### 2. Look up upstream source

From `references/upstream-sources.md`:

- If the version has no upstream source for the requested flavor → stop and tell the user what's missing.
- If the source is marked `current/` → note that the image will install whatever Bareos is current (as of the build date, not the directory name).

### 3. Find the reference template

Find the nearest existing directory with the **same component** and **same flavor**:

- Same component, closest version, same flavor (e.g. for client/22-ubuntu, reference is client/21-ubuntu)
- Read its `Dockerfile` and `docker-entrypoint.sh` in full — pass this verbatim to the subagent

### 4. Invoke ollama-orchestrator

Call `Agent(subagent_type: "ollama-orchestrator", prompt: <detailed prompt>)` with:

- The reference Dockerfile and entrypoint verbatim (inside a code fence)
- The target directory name (e.g. `client/22-ubuntu`)
- The FROM change: e.g. `FROM ubuntu:jammy` (Ubuntu 22.04)
- The BAREOS_KEY and BAREOS_REPO values from the upstream sources table
- Any differences in how the gpg key is handled between v21 and v22+ style
- A request for the complete Dockerfile and entrypoint, not a diff

**Mandatory**: do not write Dockerfile or entrypoint bodies yourself. All content must come from ollama-orchestrator.

### 5. Write files

From the subagent's output, extract the Dockerfile and docker-entrypoint.sh, then:

```bash
mkdir -p <component>/<version>-<flavor>
# Write Dockerfile
# Write docker-entrypoint.sh
chmod +x <component>/<version>-<flavor>/docker-entrypoint.sh
```

### 6. Validate one representative build

Run `docker build --check` (or `docker build --platform linux/amd64 --no-cache -t test-bareos:local .`) from inside the new directory. If it fails, inspect the error and run one correction round through ollama-orchestrator before giving up.

Do not attempt to build all generated dirs in one pass — do one, verify, then continue.

### 7. Report

State what was generated, which tuples were skipped (upstream not found), whether the test build passed.

## Ubuntu key handling difference

- v20–21 (old style): `curl -Ls $BAREOS_KEY -o /tmp/bareos.key` then `apt-key add /tmp/bareos.key`
- v22+ (new style): `curl -Ls $BAREOS_KEY | gpg --dearmor -o /usr/share/keyrings/bareos.gpg` then `[signed-by=/usr/share/keyrings/bareos.gpg]` in sources.list

When generating v22-ubuntu, ensure the reference (v21-ubuntu old style) is adapted to the new gpg style shown in v24-ubuntu. Tell the subagent explicitly.
69 changes: 69 additions & 0 deletions .agents/skills/add-bareos-version/references/upstream-sources.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Bareos Upstream Source Table

Last verified: 2026-04-18

## Ubuntu repos

| Bareos version | Ubuntu base | BAREOS_KEY | BAREOS_REPO | Status |
|---------------|-------------|------------|-------------|--------|
| 20 | ubuntu:focal (20.04) | `http://download.bareos.org/bareos/release/20/xUbuntu_20.04/Release.key` | `http://download.bareos.org/bareos/release/20/xUbuntu_20.04/` | ✓ versioned |
| 21 | ubuntu:focal (20.04) | `http://download.bareos.org/bareos/release/21/xUbuntu_20.04/Release.key` | `http://download.bareos.org/bareos/release/21/xUbuntu_20.04/` | ✓ versioned |
| 22 | ubuntu:jammy (22.04) | `http://download.bareos.org/current/xUbuntu_22.04/Release.key` | `http://download.bareos.org/current/xUbuntu_22.04/` | ⚠ current/ installs latest Bareos (25.x as of 2026-04) |
| 23 | — | — | — | ✗ no versioned repo; current/ does not pin to 23 |
| 24 | ubuntu:noble (24.04) | `http://download.bareos.org/current/xUbuntu_24.04/Release.key` | `http://download.bareos.org/current/xUbuntu_24.04/` | ⚠ current/ installs latest Bareos (25.x as of 2026-04) |
| 25 | — | — | — | ✗ no versioned repo; current/ does not pin to 25 |

**Note**: For v22+, `current/` always tracks the latest Bareos release. The directory name reflects Ubuntu version, not Bareos version.

## Alpine repos

| Bareos version | Alpine tag | Bareos package | Status |
|---------------|-----------|----------------|--------|
| 20 | alpine:3.15 | bareos-20.x | ✓ in community |
| 21 | alpine:3.17 | bareos-21.x | ✓ in community |
| 22 | alpine:3.18 | bareos-22.0.3-r1 | ✓ in community |
| 23 | — | — | ✗ Alpine 3.19+ has no Bareos packages |
| 24 | — | — | ✗ Alpine 3.19+ has no Bareos packages |
| 25 | — | — | ✗ Alpine 3.19+ has no Bareos packages |

**Note**: Bareos is only available in Alpine through 3.18. There is no Alpine support for Bareos 23+.

## api component (bareos-restapi pip package)

| Version | Pip spec | PyPI status |
|---------|----------|-------------|
| 21 | `>=21*,<22*` | ✓ 21.1.9 on PyPI |
| 22 | `>=22*,<23*` | ✗ not on PyPI — build will fail |
| 24 | `>=24*,<25*` | ✗ not on PyPI — build will fail |

**api component note**: The existing api/22-alpine and api/24-alpine Dockerfiles have broken pip constraints. Only api/21-alpine is reliably buildable. Do not generate new api dirs without first verifying PyPI availability.

## Verification commands

```bash
# Ubuntu: check a specific version URL
curl -sfI "http://download.bareos.org/bareos/release/<v>/xUbuntu_20.04/Release.key" && echo "YES" || echo "NO"
curl -sfI "http://download.bareos.org/current/xUbuntu_22.04/Release.key" && echo "YES" || echo "NO"

# Alpine: check what Bareos version an Alpine tag ships
docker run --rm alpine:<tag> sh -c "apk update -q 2>/dev/null && apk search -e bareos"

# pip: check bareos-restapi versions
curl -sL "https://pypi.org/simple/bareos-restapi/" | grep -Eo 'bareos.restapi-[0-9]+\.[0-9]+\.[0-9]+' | sed 's/bareos.restapi-//'
```

## Missing and buildable as of 2026-04-18

| Component | Target | Buildable? | Reason |
|-----------|--------|------------|--------|
| director-pgsql | 22-ubuntu | ✓ | Ubuntu 22.04 + current/ |
| director-pgsql | 24-alpine | ✗ | No Alpine package for Bareos 24 |
| director-pgsql | 23-alpine/ubuntu | ✗ | No upstream source |
| director-pgsql | 25-alpine/ubuntu | ✗ | No upstream source |
| storage | same as director-pgsql | same | same |
| client | same as director-pgsql | same | same |
| webui | same as director-pgsql | same | same |
| api | 20-alpine | ✗ | bareos-restapi<21 not on PyPI |
| api | 23-alpine | ✗ | No upstream source |
| api | 25-alpine | ✗ | No upstream source |
| director-mysql | 21+ | ✗ | MySQL backend dropped in Bareos 21+ |
79 changes: 79 additions & 0 deletions .claude/skills/add-bareos-version/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
name: add-bareos-version
description: Add a new Bareos version directory (Dockerfile + docker-entrypoint.sh) for a given component and flavor (alpine|ubuntu). Delegates all code generation to the ollama-orchestrator subagent. Use when the user asks to add support for Bareos N-ubuntu or N-alpine, or fill missing version/flavor combos. Also use when the user types "add Bareos 22 ubuntu" or "generate missing Bareos versions".
allowed-tools: [Read, Write, Edit, Glob, Grep, Bash, Agent]
---

# add-bareos-version skill

Generates missing Bareos Docker image directories using the ollama-orchestrator subagent.

## Upstream source table

See `references/upstream-sources.md` for the authoritative mapping of Bareos version → Alpine tag and Ubuntu repo URL. **Verify this table before generating** — do not assume; run the probe commands in that file if unsure.

## Workflow

### 1. Resolve inputs

Accept: a list of `{component, version, flavor}` tuples. Examples:

- "Add 22-ubuntu for all standard components" → four tuples: director-pgsql, storage, client, webui, each with version=22, flavor=ubuntu
- "Generate client/23-alpine" → one tuple

**Standard components** = director-pgsql, storage, client, webui. The api component uses a pip-pinned pattern; handle it separately only if explicitly requested.

### 2. Look up upstream source

From `references/upstream-sources.md`:

- If the version has no upstream source for the requested flavor → stop and tell the user what's missing.
- If the source is marked `current/` → note that the image will install whatever Bareos is current (as of the build date, not the directory name).

### 3. Find the reference template

Find the nearest existing directory with the **same component** and **same flavor**:

- Same component, closest version, same flavor (e.g. for client/22-ubuntu, reference is client/21-ubuntu)
- Read its `Dockerfile` and `docker-entrypoint.sh` in full — pass this verbatim to the subagent

### 4. Invoke ollama-orchestrator

Call `Agent(subagent_type: "ollama-orchestrator", prompt: <detailed prompt>)` with:

- The reference Dockerfile and entrypoint verbatim (inside a code fence)
- The target directory name (e.g. `client/22-ubuntu`)
- The FROM change: e.g. `FROM ubuntu:jammy` (Ubuntu 22.04)
- The BAREOS_KEY and BAREOS_REPO values from the upstream sources table
- Any differences in how the gpg key is handled between v21 and v22+ style
- A request for the complete Dockerfile and entrypoint, not a diff

**Mandatory**: do not write Dockerfile or entrypoint bodies yourself. All content must come from ollama-orchestrator.

### 5. Write files

From the subagent's output, extract the Dockerfile and docker-entrypoint.sh, then:

```bash
mkdir -p <component>/<version>-<flavor>
# Write Dockerfile
# Write docker-entrypoint.sh
chmod +x <component>/<version>-<flavor>/docker-entrypoint.sh
```

### 6. Validate one representative build

Run `docker build --check` (or `docker build --platform linux/amd64 --no-cache -t test-bareos:local .`) from inside the new directory. If it fails, inspect the error and run one correction round through ollama-orchestrator before giving up.

Do not attempt to build all generated dirs in one pass — do one, verify, then continue.

### 7. Report

State what was generated, which tuples were skipped (upstream not found), whether the test build passed.

## Ubuntu key handling difference

- v20–21 (old style): `curl -Ls $BAREOS_KEY -o /tmp/bareos.key` then `apt-key add /tmp/bareos.key`
- v22+ (new style): `curl -Ls $BAREOS_KEY | gpg --dearmor -o /usr/share/keyrings/bareos.gpg` then `[signed-by=/usr/share/keyrings/bareos.gpg]` in sources.list

When generating v22-ubuntu, ensure the reference (v21-ubuntu old style) is adapted to the new gpg style shown in v24-ubuntu. Tell the subagent explicitly.
70 changes: 70 additions & 0 deletions .claude/skills/add-bareos-version/references/upstream-sources.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Bareos Upstream Source Table

Last verified: 2026-06-01

## Ubuntu repos

| Bareos version | Ubuntu base | BAREOS_KEY | BAREOS_REPO | Status |
|---------------|-------------|------------|-------------|--------|
| 20 | ubuntu:focal (20.04) | `http://download.bareos.org/bareos/release/20/xUbuntu_20.04/Release.key` | `http://download.bareos.org/bareos/release/20/xUbuntu_20.04/` | ✓ versioned |
| 21 | ubuntu:focal (20.04) | `http://download.bareos.org/bareos/release/21/xUbuntu_20.04/Release.key` | `http://download.bareos.org/bareos/release/21/xUbuntu_20.04/` | ✓ versioned |
| 22 | ubuntu:jammy (22.04) | `http://download.bareos.org/current/xUbuntu_22.04/Release.key` | `http://download.bareos.org/current/xUbuntu_22.04/` | ⚠ current/ installs latest Bareos (25.x as of 2026-04) |
| 23 | — | — | — | ✗ no versioned repo; current/ does not pin to 23 |
| 24 | ubuntu:noble (24.04) | `http://download.bareos.org/current/xUbuntu_24.04/Release.key` | `http://download.bareos.org/current/xUbuntu_24.04/` | ⚠ current/ installs latest Bareos (25.x as of 2026-04) |
| 25 | ubuntu:noble (24.04) | `http://download.bareos.org/current/xUbuntu_24.04/Release.key` | `http://download.bareos.org/current/xUbuntu_24.04/` | ⚠ current/ installs latest Bareos (25.x as of 2026-06); 25-ubuntu images built from this |

**Note**: For v22+, `current/` always tracks the latest Bareos release. The directory name reflects Ubuntu version, not Bareos version.

## Alpine repos

| Bareos version | Alpine tag | Bareos package | Status |
|---------------|-----------|----------------|--------|
| 20 | alpine:3.15 | bareos-20.x | ✓ in community |
| 21 | alpine:3.17 | bareos-21.x | ✓ in community |
| 22 | alpine:3.18 | bareos-22.0.3-r1 | ✓ in community |
| 23 | — | — | ✗ Alpine 3.19+ has no Bareos packages |
| 24 | — | — | ✗ Alpine 3.19+ has no Bareos packages |
| 25 | — | — | ✗ Alpine 3.19+ has no Bareos packages |

**Note**: Bareos is only available in Alpine through 3.18. There is no Alpine support for Bareos 23+.

## api component (bareos-restapi pip package)

| Version | Pip spec | PyPI status |
|---------|----------|-------------|
| 21 | `>=21*,<22*` | ✓ 21.1.9 on PyPI |
| 22 | `>=22*,<23*` | ✗ not on PyPI — build will fail |
| 24 | `>=24*,<25*` | ✗ not on PyPI — build will fail |

**api component note**: The existing api/22-alpine and api/24-alpine Dockerfiles have broken pip constraints. Only api/21-alpine is reliably buildable. Do not generate new api dirs without first verifying PyPI availability.

## Verification commands

```bash
# Ubuntu: check a specific version URL
curl -sfI "http://download.bareos.org/bareos/release/<v>/xUbuntu_20.04/Release.key" && echo "YES" || echo "NO"
curl -sfI "http://download.bareos.org/current/xUbuntu_22.04/Release.key" && echo "YES" || echo "NO"

# Alpine: check what Bareos version an Alpine tag ships
docker run --rm alpine:<tag> sh -c "apk update -q 2>/dev/null && apk search -e bareos"

# pip: check bareos-restapi versions
curl -sL "https://pypi.org/simple/bareos-restapi/" | grep -Eo 'bareos.restapi-[0-9]+\.[0-9]+\.[0-9]+' | sed 's/bareos.restapi-//'
```

## Missing and buildable as of 2026-04-18

| Component | Target | Buildable? | Reason |
|-----------|--------|------------|--------|
| director-pgsql | 22-ubuntu | ✓ | Ubuntu 22.04 + current/ |
| director-pgsql | 24-alpine | ✗ | No Alpine package for Bareos 24 |
| director-pgsql | 23-alpine/ubuntu | ✗ | No upstream source |
| director-pgsql | 25-ubuntu | ✓ | Ubuntu 24.04 + current/ |
| director-pgsql | 25-alpine | ✗ | No Alpine package for Bareos 25 |
| storage | 25-ubuntu | ✓ | Ubuntu 24.04 + current/ |
| client | 25-ubuntu | ✓ | Ubuntu 24.04 + current/ |
| webui | 25-ubuntu | ✓ | Ubuntu 24.04 + current/ |
| api | 20-alpine | ✗ | bareos-restapi<21 not on PyPI |
| api | 23-alpine | ✗ | No upstream source |
| api | 25-alpine | ✗ | No upstream source |
| director-mysql | 21+ | ✗ | MySQL backend dropped in Bareos 21+ |
2 changes: 1 addition & 1 deletion .github/actions/build-bareos-app/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM docker:stable
FROM docker:27

SHELL ["/bin/ash", "-eo", "pipefail", "-c"]

Expand Down
6 changes: 6 additions & 0 deletions .github/actions/build-bareos-app/action.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
name: 'build-bareos-app'
description: 'Build Bareos app images'
author: 'Barcus'
inputs:
registry:
description: 'Registry URL'
required: true
runs:
using: 'docker'
image: 'Dockerfile'
args:
- ${{ inputs.registry }}
10 changes: 8 additions & 2 deletions .github/actions/build-bareos-app/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ echo ::endgroup::

# Build from app_build.txt
echo ::group::Build Bareos
HAS_ERROR=0
while read app version arch app_path ; do
tag="${version}"
re='^[0-9]+-alpine.*$'
Expand All @@ -32,12 +33,14 @@ while read app version arch app_path ; do
--build-arg VCS_REF=$(git rev-parse --short HEAD) \
--build-arg BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
--build-arg NAME="${GITHUB_REPOSITORY}-${app}" \
--output "type=docker,dest=${workdir}/bareos-${app}-${tag}.tar,name=${GITHUB_REPOSITORY}-${app}:${tag}" \
--tag "bareos-${app}:${tag}" \
--output "type=docker,dest=${workdir}/bareos-${app}-${tag}.tar" \
"${app_path}"

if [[ $? -ne 0 ]] ; then
echo "::error:: ERROR-build: failed ${GITHUB_REPOSITORY}-${app}:${tag} in ${app_path}"
rm -f "${workdir}/bareos-${app}-${tag}.tar"
HAS_ERROR=1
fi

done < "${workdir}/app_build.txt"
Expand All @@ -46,7 +49,10 @@ echo ::endgroup::
# Clean & fix perm
echo ::group::Clean
docker buildx rm
chmod 755 "${workdir}"/bareos-*.tar
if [[ $HAS_ERROR -ne 0 ]]; then
exit 1
fi
find "${workdir}" -name 'bareos-*.tar' -exec chmod 755 {} +
echo ::endgroup::

#EOF
14 changes: 10 additions & 4 deletions .github/actions/prepare-bareos-app/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#!/usr/bin/env bash

BUILDX_VER='v0.5.1'
latest_ubuntu='21'
latest_ubuntu='25'
latest_alpine='22'
latest_api='22'
latest_api='21'

build_file="${GITHUB_WORKSPACE}/build/app_build.txt"
tag_file="${GITHUB_WORKSPACE}/build/tag_build.txt"
Expand All @@ -15,6 +15,8 @@ echo "${docker_files}"
echo ::endgroup::

mkdir -p "${GITHUB_WORKSPACE}/build"
touch "$build_file"
touch "$tag_file"

echo ::group::'Build apps & tags list'
for file in $docker_files; do
Expand All @@ -25,11 +27,15 @@ for file in $docker_files; do
app_dir=$(echo "$file" |cut -d'/' -f1)
version_dir=$(echo "$file" |cut -d'/' -f2)
version=$(echo "$version_dir" |cut -d'-' -f1)
# Skip versions no longer available upstream
if [[ "$version" -le 21 ]]; then
continue
fi
base_img=$(echo "$version_dir" |cut -d'-' -f2)
[[ $version -ge 20 ]] && default_backend='pgsql'

# disable ubuntu builds
if [ "${base_img}" == "ubuntu" ]; then
# bareos-restapi is only published for Bareos 21 at the moment.
if [ "${app}" == 'api' ] && [ "${version}" != "$latest_api" ]; then
continue
fi

Expand Down
Loading