name: Docker Image Build Pipeline on: push: branches: - testing jobs: Clean-Stale-Artifacts: runs-on: self-hosted defaults: run: working-directory: /home/builds/src steps: - name: Cleanup Stale Artifacts run: rm -rfv * - name: Cleanup Build Cache run: docker system prune -af Check-Environment: runs-on: self-hosted needs: [Clean-Stale-Artifacts] defaults: run: working-directory: /home/builds/src steps: - name: Environment Check run: | echo "BUILD_USER: $(whoami)" && echo echo "PWD: $(pwd)" && echo hostnamectl && echo lscpu && echo env && echo docker info && echo Clone-Repo: runs-on: self-hosted needs: [Check-Environment] defaults: run: working-directory: /home/builds/src steps: - name: Clone Repository run: | git clone https://gitea.thezengarden.net/podman/ansible-dev.git cd ansible-dev git checkout ${{ env.GITHUB_REF_NAME }} - name: Verify Current Commit run: cd ansible-dev && git log -1 Build-Images: runs-on: self-hosted needs: [Check-Environment, Clone-Repo] defaults: run: working-directory: /home/builds/src/ansible-dev steps: - name: Fedora run: | echo "docker build --no-cache -f build/Containerfile.fedora -t ${{ vars.REGISTRY }}/${{ env.GITHUB_REPOSITORY }}/${{ vars.BUILD_NAME_FEDORA }}:${{ env.GITHUB_REF_NAME }} ." docker build --no-cache -f build/Containerfile.fedora -t ${{ vars.REGISTRY }}/${{ env.GITHUB_REPOSITORY }}/${{ vars.BUILD_NAME_FEDORA }}:${{ env.GITHUB_REF_NAME }} . - name: Debian run: | echo "docker build --no-cache -f build/Containerfile.debian -t ${{ vars.REGISTRY }}/${{ env.GITHUB_REPOSITORY }}/${{ vars.BUILD_NAME_DEBIAN }}:${{ env.GITHUB_REF_NAME }} ." docker build --no-cache -f build/Containerfile.debian -t ${{ vars.REGISTRY }}/${{ env.GITHUB_REPOSITORY }}/${{ vars.BUILD_NAME_DEBIAN }}:${{ env.GITHUB_REF_NAME }} . Push-Images: runs-on: self-hosted needs: [Build-Images] steps: - name: Docker Login run: echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login --username ${{ secrets.REGISTRY_USER }} --password-stdin ${{ vars.REGISTRY }} - name: Push Images to Registry run: | pwd docker push ${{ vars.REGISTRY }}/${{ env.GITHUB_REPOSITORY }}/${{ vars.BUILD_NAME_FEDORA }}:${{ env.GITHUB_REF_NAME }} docker push ${{ vars.REGISTRY }}/${{ env.GITHUB_REPOSITORY }}/${{ vars.BUILD_NAME_DEBIAN }}:${{ env.GITHUB_REF_NAME }} Cleanup-Build-Images: runs-on: self-hosted needs: [Build-Images, Push-Images] steps: - name: Cleanup Build Images run: | pwd docker rmi ${{ vars.REGISTRY }}/${{ env.GITHUB_REPOSITORY }}/${{ vars.BUILD_NAME_FEDORA }}:${{ env.GITHUB_REF_NAME }} docker rmi ${{ vars.REGISTRY }}/${{ env.GITHUB_REPOSITORY }}/${{ vars.BUILD_NAME_DEBIAN }}:${{ env.GITHUB_REF_NAME }} Cleanup-Docker-Login: runs-on: self-hosted needs: [Push-Images] steps: - name: Cleanup Docker Login run: rm -v /home/builds/.docker/config.json