Compare commits

...

8 Commits

Author SHA1 Message Date
moilanik 5a00763d8f asgas
CI / Load gitea-env.conf to pipeline env (push) Successful in 13s
ci-check Build version 0.1.7 required
ci-docker-build Docker build 0.1.7 OK
ci-docker-push Docker push 0.1.7 OK
ci-docker-tag Tag 0.1.7 OK
CI / Build & Push Artifact (push) Successful in 1m24s
2026-06-15 13:26:08 +03:00
moilanik 4a79ce9d17 sag
CI / Load gitea-env.conf to pipeline env (push) Successful in 13s
ci-check Build version 0.1.7 required
ci-docker-build Docker build 0.1.7 OK
ci-docker-push Docker push 0.1.7 OK
CI / Build & Push Artifact (push) Failing after 1m4s
2026-06-15 13:21:49 +03:00
moilanik 9d402578bd siivous
CI / Load gitea-env.conf to pipeline env (push) Successful in 14s
ci-check Build version 0.1.7 required
ci-docker-build Docker build 0.1.7 OK
CI / Build & Push Artifact (push) Failing after 53s
2026-06-15 13:19:08 +03:00
moilanik 63ce59e604 clean
CI / Load gitea-env.conf to pipeline env (push) Successful in 13s
ci-check Build version 0.1.6 required
ci-docker-build Docker build 0.1.6 OK
ci-docker-push Docker push 0.1.6 OK
ci-docker-tag Tag 0.1.6 OK
CI / Build & Push Artifact (push) Successful in 1m21s
2026-06-15 13:13:13 +03:00
moilanik a566998180 siivous
CI / Load gitea-env.conf to pipeline env (push) Successful in 11s
ci-check Build version 0.1.5 required
ci-docker-build Docker build 0.1.5 OK
ci-docker-push Docker push 0.1.5 OK
ci-docker-tag Tag 0.1.5 OK
CI / Build & Push Artifact (push) Successful in 1m24s
2026-06-15 12:43:33 +03:00
moilanik 1239cc5673 siivotaa temp artifactit pois
CI / Load gitea-env.conf to pipeline env (push) Successful in 10s
ci-check Build version 0.1.4 required
ci-docker-build Docker build 0.1.4 OK
ci-docker-push Docker push 0.1.4 OK
ci-docker-tag Tag 0.1.4 OK
CI / Build & Push Artifact (push) Successful in 1m26s
2026-06-15 12:38:44 +03:00
moilanik 20a6099969 kokeillaan meneekö oikeaan paikkaan
CI / Load gitea-env.conf to pipeline env (push) Successful in 12s
ci-check Build version 0.1.3 required
ci-docker-build Docker build 0.1.3 OK
ci-docker-push Docker push 0.1.3 OK
ci-docker-tag Tag 0.1.3 OK
CI / Build & Push Artifact (push) Successful in 1m25s
2026-06-15 12:32:04 +03:00
moilanik c7141fc28f koodi repon packageksi
CI / Load gitea-env.conf to pipeline env (push) Successful in 15s
ci-check Build version 0.1.2 required
ci-docker-build Docker build 0.1.2 OK
ci-docker-push Docker push 0.1.2 OK
ci-docker-tag Tag 0.1.2 OK
CI / Build & Push Artifact (push) Successful in 1m34s
2026-06-15 12:05:20 +03:00
2 changed files with 71 additions and 24 deletions
@@ -259,6 +259,47 @@ jobs:
source /tmp/build-ctx/build.env
bash scripts/report-status.sh failure "Docker push $NEXT_VERSION FAILED" ci-docker-push
- name: Delete Docker image artifact from Gitea (Python)
if: always()
shell: python
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
SERVER_URL: ${{ gitea.server_url }}
REPOSITORY: ${{ gitea.repository }}
RUN_ID: ${{ gitea.run_id }}
ARTIFACT_NAME: "docker-image"
run: |
import os, urllib.request, json
token = os.environ['GITEA_TOKEN']
server = os.environ['SERVER_URL']
repo = os.environ['REPOSITORY']
run_id = os.environ['RUN_ID']
target_name = os.environ['ARTIFACT_NAME']
# 1. Haetaan listaus artifakteista
url = f"{server}/api/v1/repos/{repo}/actions/runs/{run_id}/artifacts"
req = urllib.request.Request(url, headers={"Authorization": f"token {token}"})
try:
with urllib.request.urlopen(req) as response:
data = json.loads(response.read().decode())
# 2. Etsitään oikea ID
artifacts = data.get("artifacts", [])
artifact_id = next((a["id"] for a in artifacts if a["name"] == target_name), None)
# 3. Jos löytyi, lähetetään DELETE-pyyntö
if artifact_id:
del_url = f"{server}/api/v1/repos/{repo}/actions/artifacts/{artifact_id}"
del_req = urllib.request.Request(del_url, headers={"Authorization": f"token {token}"}, method="DELETE")
with urllib.request.urlopen(del_req) as del_res:
print(f"Artifakti {target_name} (ID: {artifact_id}) poistettu onnistuneesti levyltä.")
else:
print(f"Artifaktia '{target_name}' ei löytynyt listalta. Se on jo poistettu.")
except Exception as e:
print(f"Poisto ohitettiin virheen vuoksi (esim. puuttuvat oikeudet): {e}")
tag-commit:
runs-on: ubuntu-latest
needs: [check, push]
+29 -23
View File
@@ -7,18 +7,24 @@ Pipeline rakentaa Docker-kontin ja pushee sen haluttuun registryyn.
## 1. Konfiguroi `gitea-env.conf`
```
# DOCKER_REGISTRY on muotoa: registry.example.com/org
#
# host+org: registry.example.com/org
#
# Pipeline rakentaa kuvan: ${DOCKER_REGISTRY}/${DOCKER_IMAGE_NAME}:${VERSION}
DOCKER_REGISTRY=gitea.app.keskikuja.site/niko # PAKOLLINEN — tyhjä ei käy
DOCKER_IMAGE_NAME=gitea-ci-library-test-image # PAKOLLINEN
DOCKER_UI_URL=https://gitea.app.keskikuja.site/niko/-/packages/container/gitea-ci-library-test-image # valinnainen
DOCKER_IMAGE_NAME=gitea-ci-library-test-image # PAKOLLINEN — pelkkä kuvan nimi
DOCKER_UI_URL= # valinnainen — tarkista Giteasta kontin oma UI-osoite ja laita se tähän ilman versiota. Workflow liittää perään /VERSION
```
| Kenttä | Pakollinen | Kuvaus |
|---|---|---|
| `DOCKER_REGISTRY` | **kyllä** | Registry + mahdollinen organisaatio. **Tyhjä arvo pysäyttää workflow'n virheeseen.** Esim. `gitea.app.keskikuja.site/niko` |
| `DOCKER_IMAGE_NAME` | **kyllä** | Pelkkä kuvan nimi. Esim. `gitea-ci-library-test-image` |
| `DOCKER_UI_URL` | ei | Base-URL kontin UI-sivulle (ilman versiota). Workflow liittää perään `/VERSION`. Giteassa muotoa `.../container/<DOCKER_IMAGE_NAME>` |
| `DOCKER_REGISTRY` | **kyllä** | Registry + mahdollinen organisaatio. **Tyhjä pysäyttää workflow'n.** |
| `DOCKER_IMAGE_NAME` | **kyllä** | Pelkkä kuvan nimi. |
| `DOCKER_UI_URL` | ei | Base-URL kontin UI-sivulle (ilman versiota). Osoite riippuu onko kontti linkitetty repoon vai ei — tarkista Giteasta. Workflow liittää perään `/VERSION`. |
**Koko image-ref:** `${DOCKER_REGISTRY}/${DOCKER_IMAGE_NAME}:${VERSION}`
**Koko image-ref = `${DOCKER_REGISTRY}/${DOCKER_IMAGE_NAME}:${VERSION}`**
Esim. `gitea.app.keskikuja.site/niko/gitea-ci-library-test-image:0.1.0`
---
@@ -71,19 +77,30 @@ Jos registry vaatii eri käyttäjätunnuksen kuin `github.actor` (esim. Artifact
---
## 5. Esimerkkejä eri registryille
## 5. Esimerkkejä eri polkurakenteista
### Gitea Packages
### 5a. Pelkkä hosti — Artifactory
```
DOCKER_REGISTRY=ngdo-docker.artifactorypro.shared.pub.tds.tieto.com
DOCKER_IMAGE_NAME=microservice-temperature-store
DOCKER_UI_URL=https://artifactorypro.shared.pub.tds.tieto.com/ui/repos/tree/General/ngdo-docker.artifactorypro.shared.pub.tds.tieto.com/microservice-temperature-store
```
- Kontti: `ngdo-docker.../microservice-temperature-store:0.1.0`
- Secret `DOCKER_USERNAME` = service account -tunnus
- Secret `DOCKER_PASSWORD` = API-token
### 5b. Hosti + org — Gitea user-taso
```
DOCKER_REGISTRY=gitea.app.keskikuja.site/niko
DOCKER_IMAGE_NAME=gitea-ci-library-test-image
DOCKER_UI_URL=https://gitea.app.keskikuja.site/niko/-/packages/container/gitea-ci-library-test-image
DOCKER_UI_URL= # tarkista Giteasta kontin UI-osoite
```
- PAT scope: `package` Read and Write
### Docker Hub
- Kontti: `gitea.app.keskikuja.site/niko/gitea-ci-library-test-image:0.1.0`
- Paketti käyttäjän `niko` alla. Linkitys repoon tehdään Gitean UI:sta: paketin sivulta (Package → Settings) → linkitä repositoryyn.
```
DOCKER_REGISTRY=docker.io/library
@@ -93,14 +110,3 @@ DOCKER_UI_URL=https://hub.docker.com/r/library/oma-kuva
- Secret `DOCKER_USERNAME` = Docker Hub -käyttäjä
- Secret `DOCKER_PASSWORD` = Access Token (ei salasana)
### Artifactory (kuten legacy Jenkins)
```
DOCKER_REGISTRY=ngdo-docker.artifactorypro.shared.pub.tds.tieto.com
DOCKER_IMAGE_NAME=microservice-temperature-store
DOCKER_UI_URL=https://artifactorypro.shared.pub.tds.tieto.com/ui/repos/tree/General/ngdo-docker.artifactorypro.shared.pub.tds.tieto.com/microservice-temperature-store
```
- Secret `DOCKER_USERNAME` = service account -tunnus
- Secret `DOCKER_PASSWORD` = API-token