Files
net-base/.gitea/workflows/action.yaml
T
2026-08-12 10:16:30 +02:00

140 lines
5.4 KiB
YAML

name: 'Build docker container'
on:
workflow_dispatch:
inputs:
branch:
description: "Select branch to build"
required: true
type: choice
options:
- 9.0-alpine-24
- 9.0-alpine-23
- 9.0-alpine-22
- 9.0-alpine-21
- 8.0-alpine-22
- 8.0-alpine-21
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ${{ GITHUB_WORKSPACE }}
steps:
- name: Checkout
uses: actions/checkout@v3
#- name: Set build variables for docker build
# id: variables-test
# uses: https://git.claeyscloud.com/david/gitea-actions/conditional-variables@main
# with:
# context: |
# branch=${{ inputs.branch }}
# rules: |
# - conditions:
# - branch == 9.0-alpine-24
# - branch == 9.0-alpine-23
# set:
# DOTNET_SDK_VERSION=9.0
# DOTNET_RUNTIME_VERSION=9.0.18
# - conditions:
# - branch == 9.0-alpine-24
# set:
# ALPINE_VERSION=24
#- name: Dump contexts
# env:
# GITEA_CONTEXT: ${{ toJson(gitea) }}
# JOB_CONTEXT: ${{ toJson(job) }}
# RUNNER_CONTEXT: ${{ toJson(runner) }}
# STRATEGY_CONTEXT: ${{ toJson(strategy) }}
# MATRIX_CONTEXT: ${{ toJson(matrix) }}
# run: |
# echo "=== ENVIRONMENT VARIABLES ==="
# echo '${{ toJson(steps.variables-test.outputs) }}'
# # echo "$GITEA_CONTEXT"
# # echo "$JOB_CONTEXT"
# # echo "$RUNNER_CONTEXT"
# # echo "$STRATEGY_CONTEXT"
# # echo "$MATRIX_CONTEXT"
- name: Set build variables for docker build
id: variables
run: |
case "${{ inputs.branch }}" in
9.0-alpine-24)
echo "DOTNET_SDK_VERSION=9.0" >> $GITHUB_OUTPUT
echo "DOTNET_RUNTIME_VERSION=9.0.19" >> $GITHUB_OUTPUT
echo "ALPINE_VERSION=3.24" >> $GITHUB_OUTPUT
echo "IS_LATEST=true" >> $GITHUB_OUTPUT
;;
9.0-alpine-23)
echo "DOTNET_SDK_VERSION=9.0" >> $GITHUB_OUTPUT
echo "DOTNET_RUNTIME_VERSION=9.0.19" >> $GITHUB_OUTPUT
echo "ALPINE_VERSION=3.23" >> $GITHUB_OUTPUT
echo "IS_LATEST=false" >> $GITHUB_OUTPUT
;;
9.0-alpine-22)
echo "DOTNET_SDK_VERSION=9.0" >> $GITHUB_OUTPUT
echo "DOTNET_RUNTIME_VERSION=9.0" >> $GITHUB_OUTPUT
echo "ALPINE_VERSION=3.22" >> $GITHUB_OUTPUT
echo "IS_LATEST=false" >> $GITHUB_OUTPUT
;;
9.0-alpine-21)
echo "DOTNET_SDK_VERSION=9.0" >> $GITHUB_OUTPUT
echo "DOTNET_RUNTIME_VERSION=9.0" >> $GITHUB_OUTPUT
echo "ALPINE_VERSION=3.21" >> $GITHUB_OUTPUT
echo "IS_LATEST=false" >> $GITHUB_OUTPUT
;;
8.0-alpine-22)
echo "DOTNET_SDK_VERSION=8.0" >> $GITHUB_OUTPUT
echo "DOTNET_RUNTIME_VERSION=8.0" >> $GITHUB_OUTPUT
echo "ALPINE_VERSION=3.22" >> $GITHUB_OUTPUT
echo "IS_LATEST=false" >> $GITHUB_OUTPUT
;;
8.0-alpine-21)
echo "DOTNET_SDK_VERSION=8.0" >> $GITHUB_OUTPUT
echo "DOTNET_RUNTIME_VERSION=8.0" >> $GITHUB_OUTPUT
echo "ALPINE_VERSION=3.21" >> $GITHUB_OUTPUT
echo "IS_LATEST=false" >> $GITHUB_OUTPUT
;;
*)
echo "Unsupported branch"
exit 1
;;
esac
- name: Setup docker
uses: https://git.claeyscloud.com/david/gitea-actions/setup-docker@main
- name: Set up Docker Buildx
uses: https://github.com/docker/setup-buildx-action@v3
- name: Docker login
uses: https://github.com/docker/login-action@v3
with:
registry: git.claeyscloud.com
username: nologin
password: ${{ secrets.PACKAGE_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
labels: |
org.opencontainers.image.documentation=https://git.claeyscloud.com/david/net-base/README.md
images: |
git.claeyscloud.com/david/net-base
tags: |
type=raw,value=${{ inputs.branch }}
type=raw,value=latest,enable=${{ steps.variables.outputs.IS_LATEST == 'true' }}
type=sha
- name: Generate random password for certificate
id: password
run:
echo "secret=$(openssl rand -base64 12)" >> $GITHUB_OUTPUT
- name: Build and push
uses: https://github.com/docker/build-push-action@v5
with:
build-args: |
CERT_PASSWORD=${{ steps.password.outputs.secret }}
DOTNET_SDK_VERSION=${{ steps.variables.outputs.DOTNET_SDK_VERSION }}
DOTNET_RUNTIME_VERSION=${{ steps.variables.outputs.DOTNET_RUNTIME_VERSION }}
ALPINE_VERSION=${{ steps.variables.outputs.ALPINE_VERSION }}
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}