name: Build podman-dind-like on: push: branches: - 'release/**' - 'feature/**' - develop tags: - '*' pull_request: branches: - main - 'release/**' - develop env: GITHUB_DOCKER_USER: ${{ github.actor }} NEXUS_DOCKER_USER: ${{ secrets.HOME_NEXUS_DOCKER_USER }} NEXUS_PROXY_REGISTRY: nexus.jamesjonesconsulting.com:5444 jobs: build-and-push: runs-on: jamesjonesconsulting-arch-gha-set # runs-on: [ self-hosted, medium, build ] timeout-minutes: 720 container: image: nexus.jamesjonesconsulting.com:5444/podman/stable:latest # image: quay.io/podman/stable:latest # options: '--user root' options: >- --group-add keep-groups --privileged --user root # --userns=keep-id # credentials: # username: ${{ secrets.HOME_NEXUS_DOCKER_USER }} # password: ${{ secrets.HOME_NEXUS_DOCKER_PASSWORD }} strategy: fail-fast: false max-parallel: 2 matrix: # registry: [ 'ghcr.io', 'nexus.jamesjonesconsulting.com:5443' ] registry: [ 'ghcr.io' ] include: - registry: ghcr.io user: GITHUB_DOCKER_USER password: GITHUB_TOKEN registry_proxy: $NEXUS_PROXY_REGISTRY proxy_user: NEXUS_DOCKER_USER proxy_password: HOME_NEXUS_DOCKER_PASSWORD # - registry: nexus.jamesjonesconsulting.com:5443 # user: NEXUS_DOCKER_USER # password: HOME_NEXUS_DOCKER_PASSWORD # registry_proxy: $NEXUS_PROXY_REGISTRY # proxy_user: NEXUS_DOCKER_USER # proxy_password: HOME_NEXUS_DOCKER_PASSWORD steps: # Downloads a copy of the code in your repository before running CI tests - name: Check out repository code uses: actions/checkout@v3 - name: Add on podman-docker for step compatibility run: | dnf install -y podman-docker - name: Docker Login uses: azure/docker-login@v1 with: login-server: ${{ matrix.registry }} username: ${{ env[matrix.user] }} password: ${{ secrets[matrix.password] }} # - name: Docker Login # uses: azure/docker-login@v1 # with: # login-server: ${{ matrix.registry_proxy }} # username: ${{ env[matrix.proxy_user] }} # password: ${{ secrets[matrix.proxy_password] }} # This requires docker buildx which podman doesn't support # - name: Extract metadata (tags, labels) for Docker # id: meta # uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 # with: # images: ${{ matrix.registry }}/${{ env.IMAGE_NAME }} # - name: Build and push Docker images # uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc # with: # context: . # push: true # tags: ${{ steps.meta.outputs.tags }} # labels: ${{ steps.meta.outputs.labels }} - name: Build the Docker image run: | IMAGE_NAME=$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]') if [[ "$GITHUB_REF" =~ ^refs/tags.* ]]; then VERSION=$GITHUB_REF_NAME else VERSION=$(echo "${GITHUB_REF_NAME}" | sed 's|/|-|g') fi podman build . --file Dockerfile --tag "${{ matrix.registry }}/$IMAGE_NAME:$VERSION" --build-arg ARTIFACTORY=${{ matrix.registry_proxy }} if [[ "$GITHUB_REF" =~ ^refs/pull.* ]]; then echo "Pull requests do not get published. Only for testing" else podman push "${{ matrix.registry }}/$IMAGE_NAME:$VERSION" if [[ "$GITHUB_REF" =~ ^refs/tags.* ]]; then podman tag "${{ matrix.registry }}/$IMAGE_NAME:$VERSION" "${{ matrix.registry }}/$IMAGE_NAME:latest" podman push "${{ matrix.registry }}/$IMAGE_NAME:latest" fi fi