# Copyright (c) Abstract Machines
# SPDX-License-Identifier: Apache-2.0

name: Continuous Delivery

on:
  push:
    branches:
      - main
    paths-ignore:
      - "**/*.md"
      - "docs/**"
      - ".github/workflows/**"
      - "LICENSE"
      - "MAINTAINERS"
      - "CODEOWNERS"

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: false

jobs:
  lint-and-build:
    uses: ./.github/workflows/lint-and-build.yaml

  build-and-push:
    name: Build and Push Docker Images
    runs-on: ubuntu-latest
    needs: [lint-and-build]
    permissions:
      contents: read
      packages: write

    steps:
      - name: Checkout code
        uses: actions/checkout@v7
        with:
          fetch-depth: 0
          fetch-tags: true

      - name: Setup Go
        uses: actions/setup-go@v6
        with:
          go-version-file: go.mod
          cache-dependency-path: "go.sum"

      - name: Set up Docker Build
        uses: docker/setup-buildx-action@v4

      - name: Login to GHCR
        uses: docker/login-action@v4
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Build and push Docker images
        run: |
          make latest -j $(nproc)
