name: Operator CI on: push: branches: [ main ] pull_request: branches: [ main ] paths: - 'pkg/**' - 'cmd/**' - 'go.*' jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v4 with: go-version: '1.22' - name: Clear module cache run: | go clean -modcache rm -rf ~/.cache/go-build - name: Run linter uses: golangci/golangci-lint-action@v3 with: version: latest skip-cache: true test: needs: lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v4 with: go-version: '1.22' - name: Clear module cache run: | go clean -modcache rm -rf ~/.cache/go-build - name: Install dependencies run: go mod download - name: Run tests run: go test -v ./... build: needs: test runs-on: ubuntu-latest permissions: contents: read packages: write steps: - uses: actions/checkout@v3 - name: Install Podman run: | sudo apt-get update sudo apt-get install -y podman - name: Login to GitHub Container Registry if: github.event_name != 'pull_request' run: | echo "${{ secrets.GITHUB_TOKEN }}" | podman login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build and push run: | podman build -t ghcr.io/${{ github.repository_owner }}/container-mom-operator:${{ github.sha }} -f build/Dockerfile.operator . podman tag ghcr.io/${{ github.repository_owner }}/container-mom-operator:${{ github.sha }} ghcr.io/${{ github.repository_owner }}/container-mom-operator:latest if [ "${{ github.event_name }}" != "pull_request" ]; then podman push ghcr.io/${{ github.repository_owner }}/container-mom-operator:${{ github.sha }} podman push ghcr.io/${{ github.repository_owner }}/container-mom-operator:latest fi