Skip to content

App (#121)

App (#121) #23

Workflow file for this run

name: Build and Deploy
on:
push:
branches:
- main
env:
IMAGE_NAME: "ghcr.io/copymeproeip"
SSH_PORT: ${{ secrets.SSH_PORT }}
SSH_USER: ${{ secrets.SSH_USER }}
DOMAIN_NAME: ${{ secrets.DOMAIN_NAME }}
jobs:
build:
name: Build Services
runs-on: ubuntu-latest
environment: token
strategy:
matrix:
include:
- CONTEXT: "./copy-me_backend"
DOCKERFILE: "./copy-me_backend/prod.dockerfile"
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker registry
uses: docker/login-action@v3
with:
registry: ${{ secrets.CI_REGISTRY }}
username: ${{ secrets.CI_REGISTRY_USER }}
password: ${{ secrets.CI_JOB_TOKEN }}
- name: Get image tag
id: image_tag
run: |
git fetch --tags
TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "${GITHUB_REF##*/}-${GITHUB_RUN_ID}")
echo "tag=$TAG" >> $GITHUB_OUTPUT
- name: Build and push image
run: |
IMAGE_TAG="${{ steps.image_tag.outputs.tag }}"
SERVICE_NAME=$(basename "${{ matrix.CONTEXT }}")
FULL_TAG="${{ env.IMAGE_NAME }}/${SERVICE_NAME}:${IMAGE_TAG}"
docker build -t $FULL_TAG -f "${{ matrix.DOCKERFILE }}" "${{ matrix.CONTEXT }}"
docker push $FULL_TAG
if [[ "${{ github.ref_name }}" == "main" ]]; then
docker tag $FULL_TAG "${{ env.IMAGE_NAME }}/${SERVICE_NAME}:latest"
docker push "${{ env.IMAGE_NAME }}/${SERVICE_NAME}:latest"
fi
- name: Clean Docker
run: docker image prune -f