name: Docker Build and Push # Имя CI джобы on: # Выполняется если производится push в ветку main push: branches: [ main ] env: # Переменные окружения REGISTRY: gitea.trastinfo.ru IMAGE_NAME: sailor/mkdocs PLATFORMS: linux/amd64,linux/arm64 jobs: # Список выполняемых джоб check-changes: # джоба проверки изменений в файлах runs-on: ubuntu-latest outputs: src_changed: ${{ steps.filter.outputs.src }} steps: - uses: actions/checkout@v3 - uses: dorny/paths-filter@v2 id: filter with: filters: | src: - 'requirements.txt' build: # джоба сборки и пуша образа. Выполняется если проверка изменений показала что requirements.txt был изменен needs: check-changes if: needs.check-changes.outputs.src_changed == 'true' runs-on: ubuntu-latest steps: - name: Login to Gitea Registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ secrets.REGISTRY_USERNAME }} password: ${{ secrets.REGISTRY_TOKEN }} - name: Checkout code uses: actions/checkout@v4 with: ref: main - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push multi-arch image uses: docker/build-push-action@v5 with: context: . file: ./Dockerfile push: true tags: | ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} cache-from: type=gha cache-to: type=gha,mode=max