48 lines
1.4 KiB
YAML
48 lines
1.4 KiB
YAML
name: Build and Push
|
||
|
||
on:
|
||
push:
|
||
branches:
|
||
- main # Триггер на пуш в ветку main
|
||
tags:
|
||
- 'v*' # Триггер на теги, начинающиеся с 'v'
|
||
|
||
env:
|
||
HARBOR_REGISTRY: harbor.grachevko.ru # Адрес вашего Harbor
|
||
HARBOR_PROJECT: obsidian # Название проекта в Harbor
|
||
IMAGE_NAME: server # Название образа
|
||
DOCKERFILE_PATH: ./Dockerfile # Путь к Dockerfile
|
||
|
||
jobs:
|
||
build-and-push:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- name: Checkout code
|
||
uses: actions/checkout@v4
|
||
|
||
- name: Login to Harbor
|
||
uses: docker/login-action@v3
|
||
with:
|
||
registry: ${{ env.HARBOR_REGISTRY }}
|
||
username: ${{ secrets.HARBOR_USERNAME }}
|
||
password: ${{ secrets.HARBOR_PASSWORD }}
|
||
|
||
- name: Extract metadata (tags, labels) for Docker
|
||
id: meta
|
||
uses: docker/metadata-action@v5
|
||
with:
|
||
images: ${{ env.HARBOR_REGISTRY }}/${{ env.HARBOR_PROJECT }}/${{ env.IMAGE_NAME }}
|
||
tags: |
|
||
type=ref,event=branch
|
||
type=ref,event=tag
|
||
type=sha
|
||
|
||
- name: Build and push
|
||
uses: docker/build-push-action@v6
|
||
with:
|
||
context: .
|
||
file: ${{ env.DOCKERFILE_PATH }}
|
||
push: true
|
||
tags: ${{ steps.meta.outputs.tags }}
|
||
labels: ${{ steps.meta.outputs.labels }}
|