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