57 lines
1.8 KiB
YAML
57 lines
1.8 KiB
YAML
name: build-image
|
||
|
||
on:
|
||
push:
|
||
branches: [ main ]
|
||
workflow_dispatch:
|
||
|
||
jobs:
|
||
docker:
|
||
runs-on: [docker, linux, x86_64]
|
||
|
||
# Brug et image med docker-cli; lad runneren selv injicere docker.sock
|
||
container:
|
||
image: docker:27-cli
|
||
|
||
steps:
|
||
- name: Install git
|
||
run: apk add --no-cache git
|
||
|
||
- name: Debug env (optional)
|
||
run: |
|
||
echo "GITHUB_SERVER_URL=$GITHUB_SERVER_URL"
|
||
echo "GITHUB_REPOSITORY=$GITHUB_REPOSITORY"
|
||
|
||
# Public checkout
|
||
- name: Checkout (public)
|
||
if: ${{ !secrets.CI_CLONE_TOKEN }}
|
||
run: |
|
||
git clone "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git" .
|
||
git rev-parse --short HEAD
|
||
|
||
# Private checkout (brug PAT i secret CI_CLONE_TOKEN)
|
||
- name: Checkout (private)
|
||
if: ${{ secrets.CI_CLONE_TOKEN }}
|
||
run: |
|
||
git clone "https://${{ secrets.CI_CLONE_TOKEN }}@${GITHUB_SERVER_URL#https://}/${GITHUB_REPOSITORY}.git" .
|
||
git rev-parse --short HEAD
|
||
|
||
- name: Docker info
|
||
run: docker version
|
||
|
||
- name: Build image (amd64)
|
||
run: docker build -t jottacloud:latest .
|
||
|
||
# (Valgfrit) Push til registry – kræver secrets
|
||
- name: Login & push
|
||
if: ${{ secrets.REGISTRY && secrets.REGISTRY_USER && secrets.REGISTRY_PASSWORD }}
|
||
run: |
|
||
REG="${{ secrets.REGISTRY }}"
|
||
IMG="${{ secrets.IMAGE_NAME || 'jottacloud' }}"
|
||
TAG_SHORT="$(git rev-parse --short HEAD)"
|
||
docker login "$REG" -u "${{ secrets.REGISTRY_USER }}" -p "${{ secrets.REGISTRY_PASSWORD }}"
|
||
docker tag jottacloud:latest "$REG/$IMG:latest"
|
||
docker tag jottacloud:latest "$REG/$IMG:${TAG_SHORT}"
|
||
docker push "$REG/$IMG:latest"
|
||
docker push "$REG/$IMG:${TAG_SHORT}"
|