project-nomad/.github/workflows/docker.yml
2025-08-08 15:06:40 -07:00

63 lines
1.9 KiB
YAML

name: Build Docker Image
on:
workflow_dispatch:
inputs:
version:
description: 'Semantic version to label the Docker image under'
required: true
type: string
jobs:
debug:
name: Debugging information
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: List repository root contents
run: |
echo "Repository root contents:"
ls -la
echo "Looking for admin directory:"
ls -la admin/ || echo "admin directory not found"
- name: Print GitHub context
run: echo "${{ toJson(github) }}"
- name: Print workflow inputs
run: echo "${{ toJson(inputs) }}"
check_authorization:
name: Check authorization to publish new Docker image
runs-on: ubuntu-latest
outputs:
isAuthorized: ${{ steps.check-auth.outputs.is_authorized }}
steps:
- name: check-auth
id: check-auth
run: echo "is_authorized=${{ contains(secrets.DEPLOYMENT_AUTHORIZED_USERS, github.triggering_actor) }}" >> $GITHUB_OUTPUT
build:
name: Build Docker image
needs: check_authorization
if: needs.check_authorization.outputs.isAuthorized == 'true'
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: ./admin
file: ./admin/Dockerfile
push: true
tags: |
ghcr.io/crosstalk-solutions/project-nomad-admin:${{ inputs.version }}
ghcr.io/crosstalk-solutions/project-nomad-admin:latest