name: Build and Push Docker Image on: push: branches: - '*' branches-ignore: - main jobs: test: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.10' - name: Install Dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Run Unit Tests run: python -m unittest discover -s . -p 'test_*.py' build_and_push: runs-on: ubuntu-latest needs: test # Ensures `build_and_push` runs only if `test` succeeds env: DOCKER_HOST: unix:///var/run/docker.sock steps: - name: Identify Repository id: extract_repo run: echo "::set-output name=repo_name::${GITHUB_REPOSITORY##*/}" - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 1 - name: Configure Docker Buildx uses: docker/setup-buildx-action@v3 with: driver: docker - name: Auth to Container Registry uses: docker/login-action@v2 with: registry: centurion-version-control.default.svc.cluster.local:3000 username: ${{ secrets.CI_USER }} password: ${{ secrets.CI_USER_TOKEN }} - name: Pull activity_block_wrapper Image run: | docker pull centurion-version-control.default.svc.cluster.local:3000/centurion/system/blocks-activity-wrapper:latest - name: Build and push Container Image uses: docker/build-push-action@v4 with: context: . push: true tags: | centurion-version-control.default.svc.cluster.local:3000/centurion/${{ steps.extract_repo.outputs.repo_name }}/${{ github.ref_name }}:${{ github.sha }} centurion-version-control.default.svc.cluster.local:3000/centurion/${{ steps.extract_repo.outputs.repo_name }}/${{ github.ref_name }}:latest build-args: | CONTAINER_REGISTRY=centurion-version-control.default.svc.cluster.local:3000/centurion/system