name: Build container on: push: pull_request: branches: ["main"] schedule: - cron: "0 16 * * FRI" jobs: base-build: runs-on: ubuntu-24.04 steps: - &clone_repo name: Clone repo uses: actions/checkout@v4 - &setup_buildx name: Setup Docker Buildx uses: docker/setup-buildx-action@v3 - &login_registry name: Login to Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push base container uses: docker/build-push-action@v5 with: context: ./containers/base file: ./containers/base/Containerfile push: true tags: ghcr.io/${{ github.repository_owner }}/base:latest go-build: runs-on: ubuntu-24.04 needs: base-build steps: - *clone_repo - *setup_buildx - *login_registry - name: Build and push go container uses: docker/build-push-action@v5 with: context: ./containers/go file: ./containers/go/Containerfile push: true tags: ghcr.io/${{ github.repository_owner }}/go:latest infra-build: runs-on: ubuntu-24.04 needs: base-build steps: - *clone_repo - *setup_buildx - *login_registry - name: Build and push infra container uses: docker/build-push-action@v5 with: context: ./containers/infra file: ./containers/infra/Containerfile push: true tags: ghcr.io/${{ github.repository_owner }}/infra:latest kali-build: runs-on: ubuntu-24.04 needs: base-build steps: - *clone_repo - *setup_buildx - *login_registry - name: Build and push kali container uses: docker/build-push-action@v5 with: context: ./containers/kali file: ./containers/kali/Containerfile push: true tags: ghcr.io/${{ github.repository_owner }}/kali:latest