Files
Hardened-Docker-Images/.gitea/workflows/deploy.yml
T
Workflow config file is invalid. Please check your config file: yaml: construct errors: line 1: (Line: 56, Col: 21): Unrecognized named-value: 'git'. Located at position 1 within expression: git.repository_owner (Line: 60, Col: 14): Unrecognized named-value: 'git'. Located at position 1 within expression: git.repository_owner
2026-07-12 14:08:01 -07:00

91 lines
3.1 KiB
YAML

name: Dynamic Build and Deploy Hardened Images
on:
push:
branches:
- main
schedule:
- cron: '0 0 * * 5'
workflow_dispatch:
jobs:
build-and-push:
strategy:
matrix:
runner: [linux-amd64, linux-arm64]
runs-on: ${{ matrix.runner }}
steps:
- name: Install Node.js
run: |
if command -v apt-get &> /dev/null; then
sudo apt-get update && sudo apt-get install -y nodejs
elif command -v yum &> /dev/null; then
sudo yum install -y nodejs
elif command -v apk &> /dev/null; then
apk add nodejs
else
echo "Package manager not found. Please pre-install Node.js on the runner host."
exit 1
fi
- name: Prepare Git for SHA256 Repo
run: git config --global init.defaultObjectFormat sha256
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to DHI Registry
uses: docker/login-action@v3
with:
registry: dhi.io
username: ${{ secrets.DHI_USERNAME }}
password: ${{ secrets.DHI_PASSWORD }}
- name: Log in to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: git.chillcog.com
username: ${{ git.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Detect and Build Images
run: |
FILES_TO_BUILD=""
REGISTRY_HOST="git.chillcog.com" #
OWNER_LOWER=$(echo "${{ git.repository_owner }}" | tr '[:upper:]' '[:lower:]')
if [ "${{ github.event_name }}" = "schedule" ] || [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "Scheduled or manual run triggered. Processing all YAML files..."
FILES_TO_BUILD=$(find . -maxdepth 1 -name "*.yml" -o -name "*.yaml")
else
echo "Push triggered. Detecting changed files..."
FILES_TO_BUILD=$(git diff-tree --no-commit-id --name-only -r ${{ github.sha }} 2>/dev/null | grep -E '\.(yml|yaml)$' || true)
fi
for file in $FILES_TO_BUILD; do
file=$(echo "$file" | sed 's|^\./||')
if [ ! -f "$file" ]; then continue; fi
if [[ "$file" == .gitea/* ]]; then continue; fi
filename=$(basename -- "$file")
image_name=$(echo "${filename%.*}" | tr '[:upper:]' '[:lower:]')
echo "---------------------------------------------------"
echo "Processing: $file -> Target: ${REGISTRY_HOST}/${OWNER_LOWER}/${image_name}:latest"
echo "---------------------------------------------------"
docker buildx build \
--platform linux/amd64,linux/arm64 \
--push \
--no-cache \
-f "$file" \
-t "${REGISTRY_HOST}/${OWNER_LOWER}/${image_name}:latest" \
.
done