63 lines
1.8 KiB
YAML
63 lines
1.8 KiB
YAML
name: Build and Push to Registry
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
|
|
jobs:
|
|
build-push:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: catthehacker/ubuntu:act-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
shell: sh
|
|
run: |
|
|
git clone $GITHUB_SERVER_URL/$GITHUB_REPOSITORY.git /workspace/repo
|
|
cd /workspace/repo
|
|
git checkout $GITHUB_REF_NAME
|
|
|
|
- name: Extract version from tag
|
|
shell: sh
|
|
run: |
|
|
echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
|
|
|
|
- name: Build Docker image
|
|
shell: sh
|
|
run: |
|
|
cd /workspace/repo
|
|
docker build -t email_reports_crew:${VERSION} .
|
|
docker tag email_reports_crew:${VERSION} email_reports_crew:latest
|
|
|
|
- name: Login to Docker Registry
|
|
shell: sh
|
|
env:
|
|
REGISTRY_URL: ${{ secrets.REGISTRY_URL }}
|
|
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
|
|
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
|
|
run: |
|
|
echo "$REGISTRY_PASSWORD" | docker login -u "$REGISTRY_USER" --password-stdin $REGISTRY_URL
|
|
|
|
- name: Tag and Push images
|
|
shell: sh
|
|
env:
|
|
REGISTRY_URL: ${{ secrets.REGISTRY_URL }}
|
|
run: |
|
|
docker tag email_reports_crew:${VERSION} ${REGISTRY_URL}/email_reports_crew:${VERSION}
|
|
docker tag email_reports_crew:${VERSION} ${REGISTRY_URL}/email_reports_crew:latest
|
|
|
|
docker push ${REGISTRY_URL}/email_reports_crew:${VERSION}
|
|
docker push ${REGISTRY_URL}/email_reports_crew:latest
|
|
|
|
echo "✓ Pushed images:"
|
|
echo " ${REGISTRY_URL}/email_reports_crew:${VERSION}"
|
|
echo " ${REGISTRY_URL}/email_reports_crew:latest"
|
|
|
|
- name: Cleanup
|
|
shell: sh
|
|
run: |
|
|
docker image prune -af
|
|
echo "✓ Cleanup completed"
|