Compare commits

..

2 Commits

Author SHA1 Message Date
niko 76d8ac456e ristiriitaisen dokumentaation oikaisu
CI Main / Config load (push) Successful in 20s
CI Main / Latest versio (push) Successful in 19s
unit-tests Bats test report
CI Main / Bats tests (push) Successful in 3m32s
acc-tests Cucumber test report
CI Main / Cucumber tests (push) Successful in 3m36s
ci-docker-build-push Docker push 0.2.38
CI Main / Build & Push Docker (push) Successful in 47s
gitops/gitea-ci-library GitOps: 0.2.38
CI Main / GitOps (push) Successful in 34s
CI Main / Report Summary (push) Successful in 5s
CI Main / Move provider version tag (push) Successful in 13s
2026-09-04 04:52:46 +03:00
niko 535a5fed0e feature/docker-build-arg (#50)
CI Main / Config load (push) Successful in 16s
CI Main / Latest versio (push) Successful in 15s
unit-tests Bats test report
CI Main / Bats tests (push) Successful in 1m12s
acc-tests Cucumber test report
CI Main / Cucumber tests (push) Successful in 1m19s
ci-docker-build-push Docker push 0.2.37
CI Main / Build & Push Docker (push) Successful in 37s
gitops/gitea-ci-library GitOps: 0.2.37
CI Main / GitOps (push) Successful in 34s
CI Main / Report Summary (push) Successful in 4s
CI Main / Move provider version tag (push) Successful in 10s
Co-authored-by: moilanik <niko.moilanen@tietoevry.com>
Reviewed-on: #50
2026-06-28 13:05:48 +03:00
4 changed files with 47 additions and 6 deletions
+14 -1
View File
@@ -8,6 +8,9 @@ on:
version:
required: true
type: string
build_args:
required: false
type: string
secrets:
GITEA_TOKEN:
required: true
@@ -44,6 +47,7 @@ jobs:
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME || github.actor }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
BUILD_ARGS_INPUT: ${{ inputs.build_args }}
run: |
if [ -z "${DOCKER_REGISTRY}" ]; then echo "ERROR: DOCKER_REGISTRY not set in env.conf"; exit 1; fi
if [ -z "${DOCKER_IMAGE_NAME}" ]; then echo "ERROR: DOCKER_IMAGE_NAME not set in env.conf"; exit 1; fi
@@ -51,9 +55,18 @@ jobs:
IMAGE="${DOCKER_IMAGE_NAME}"
REGISTRY_HOST="${REGISTRY%%/*}"
BUILD_ARGS=""
if [ -n "$BUILD_ARGS_INPUT" ]; then
while IFS= read -r arg; do
[ -n "$arg" ] && BUILD_ARGS="$BUILD_ARGS --build-arg $arg"
done <<EOF
$BUILD_ARGS_INPUT
EOF
fi
NOW=$(date -u +%Y-%m-%dT%H:%M:%SZ)
CONTEXT_DIR=$(dirname "${DOCKERFILE}")
docker build \
docker build $BUILD_ARGS \
--label "git.commit=${{ github.sha }}" \
--label "git.commitBy=${{ github.actor }}" \
--label "build.date=${NOW}" \
+3
View File
@@ -48,6 +48,9 @@ jobs:
with:
env_json: ${{ needs.load-config.outputs.env_json }}
version: ${{ needs.check-version.outputs.version }}
build_args: |
VERSION=${{ needs.check-version.outputs.version }}
FOO=bar
docker-gitops:
name: GitOps
+3
View File
@@ -1 +1,4 @@
FROM alpine:latest
ARG VERSION=unknown
ARG FOO=unknown
RUN mkdir -p /app && echo "$VERSION" > /app/version.txt && echo "$FOO" > /app/foo.txt
+27 -5
View File
@@ -345,6 +345,14 @@ DOCKER_REGISTRY: gitea.app.keskikuja.site/niko
DOCKER_IMAGE_NAME: my-app
```
**Inputit:**
| Parametri | Pakollinen | Kuvaus |
|-----------|------------|--------|
| `env_json` | Kyllä | Konffi `gitea-env.conf`:stä |
| `version` | Kyllä | Version string (check-version output) |
| `build_args` | Ei | Monirivinen KEY=VALUE-lista välitettynä `--build-arg`-lipuiksi `docker build` -komennolle |
**Käyttö reitittimessä:**
```yaml
@@ -356,8 +364,19 @@ docker-build-push:
with:
env_json: ${{ needs.load-config.outputs.env_json }}
version: ${{ needs.check-version.outputs.version }}
build_args: |
VERSION=${{ needs.check-version.outputs.version }}
```
**Dockerfilessä** ARG otetaan vastaan oletusarvolla ja kirjoitetaan tiedostoksi:
```dockerfile
ARG VERSION=unknown
RUN mkdir -p /app && echo "$VERSION" > /app/version.txt
```
Katso referenssi: repon juuren `Dockerfile` (`gitea-ci-library/Dockerfile`).
Tarkka input/secret-lista: `docs/workflows.md`.
### `helm-build-push.yml` — Helm chart build & push
@@ -368,7 +387,7 @@ Pakkaa ja pushee Helm-chartin OCI-registryyn. Käyttää `alpine/helm`-konttia.
```yaml
HELM_REGISTRY: gitea.app.keskikuja.site/niko
VERSION_FILE: platform-helm/Chart.yaml # versionlähde, chart_path määrää chart-hakemiston
VERSION_FILE: platform-helm/Chart.yaml # versionlähde (chartin oma Chart.yaml); chart_path = dirname(VERSION_FILE)
```
**Inputit:**
@@ -395,10 +414,13 @@ helm-build-push:
# extra_dependency_paths: subchart-a,subchart-b # tarvittaessa
```
`chart_path` on eksplisiittinen polku chart-hakemistoon (esim. `platform-helm`).
`VERSION_FILE` määrää version lähteen (`Chart.yaml:n` `version`-kenttä) —
nämä voivat olla eri polkuja, mutta tyypillisesti molemmat osoittavat samaan
chart-hakemistoon.
`chart_path` ja `dirname "${VERSION_FILE}"` viittaavat samaan chart-hakemistoon
(esim. `platform-helm`). `VERSION_FILE` on aina chartin oma `Chart.yaml`
(`<chart_path>/Chart.yaml`), joten `chart_path` = `dirname "${VERSION_FILE}"`.
`chart_path` on eksplisiittinen komponentti-identifioija, jota workflow käyttää
(pakkauskansio + status-label); jos se eroaa `dirname "${VERSION_FILE}"`-hakemistosta,
kyseessä on konfiguraatiovirhe. Yksi conf-rivi (`VERSION_FILE`, chartin `Chart.yaml`)
ohjaa sekä versionlaskentaa että chart-hakemistoa.
**`extra_dependency_paths`:** Jos chartilla on alikarttoja (subchartteja) jotka
vaativat `helm dependency update` -ajon ennen päächartin buildia, anna niiden