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}"