name: "CI pipeline" on: push: branches: [ "main" ] paths-ignore: - '.devcontainer/*' - '.github/*' - '!.github/workdlows/ci.yml' - '.vscode/*' - '**.md' - 'LICENSE' - 'COPYING' pull_request: branches: [ "main" ] paths-ignore: - '.devcontainer/*' - '.github/*' - '!.github/workdlows/ci.yml' - '.vscode/*' - '**.md' - 'LICENSE' - 'COPYING' workflow_dispatch: inputs: push: type: boolean required: false default: false description: "Push to Docker Hub" jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: "Login to Docker Hub" if: github.event_name != 'pull_request' || github.event.inputs.push == 'true' uses: docker/login-action@v3 with: username: ${{ github.repository_owner }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: "Login to GitHub Container Registry" if: github.event_name != 'pull_request' || github.event.inputs.push == 'true' uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - uses: docker/build-push-action@v6 with: context: . push: ${{ github.event_name != 'pull_request' || github.event.inputs.push == 'true' }} tags: | ${{ github.repository }} ghcr.io/${{ github.repository }}