49 lines
1.6 KiB
YAML
49 lines
1.6 KiB
YAML
# Continuous Integration Workflow
|
|
# This workflow builds and pushes Docker images to your private registry
|
|
|
|
name: CI - Build and Push
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
image_tag:
|
|
description: 'Docker image tag (e.g., latest, v1.0.0)'
|
|
required: false
|
|
default: 'latest'
|
|
type: string
|
|
|
|
env:
|
|
CONTAINER_REGISTRY_URL: ${{ secrets.CONTAINER_REGISTRY_URL }}
|
|
CONTAINER_REGISTRY_USERNAME: ${{ secrets.CONTAINER_REGISTRY_USERNAME }}
|
|
CONTAINER_REGISTRY_NAMESPACE: ${{ secrets.CONTAINER_REGISTRY_NAMESPACE }}
|
|
CONTAINER_REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }}
|
|
CONTAINER_IMAGE_NAME: stats-api
|
|
CONTAINER_IMAGE_TAG: ${{ inputs.image_tag || 'latest' }}
|
|
|
|
jobs:
|
|
build-and-push:
|
|
name: Build and Push Docker Image
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Make CI script executable
|
|
run: chmod +x script/ci.sh
|
|
|
|
- name: Build Docker image
|
|
run: ./script/ci.sh build
|
|
|
|
- name: Push Docker image
|
|
run: ./script/ci.sh push
|
|
|
|
- name: Summary
|
|
run: |
|
|
echo "### :rocket: Build Complete!" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo "**Image:** \`${CONTAINER_REGISTRY_URL}/${CONTAINER_REGISTRY_NAMESPACE}/${CONTAINER_IMAGE_NAME}:${CONTAINER_IMAGE_TAG}\`" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo "**Registry:** ${CONTAINER_REGISTRY_URL}" >> $GITHUB_STEP_SUMMARY
|
|
echo "**Tag:** ${CONTAINER_IMAGE_TAG}" >> $GITHUB_STEP_SUMMARY
|