name: Container Build env: # 🖊️ EDIT to change the image registry settings. # Registries such as GHCR, Quay.io, and Docker Hub are supported. IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }} IMAGE_REGISTRY_USER: ${{ github.actor }} IMAGE_REGISTRY_PASSWORD: ${{ github.token }} on: # https://docs.github.com/en/actions/reference/events-that-trigger-workflows push: branches: - main jobs: container-build: name: Build and deploy container to registry runs-on: ubuntu-20.04 steps: - name: Check out repository uses: actions/checkout@v2 with: submodules: true - name: Determine timestamp id: time uses: nanzm/get-time-action@v1.1 with: format: 'YYYYMMDDHHmm' # Minute granularity timestamp for versioning - name: Build from Containerfile id: build-image uses: redhat-actions/buildah-build@v2 with: image: homepage tags: ${{ steps.time.outputs.time }} latest containerfiles: | ./Containerfile - name: Push to registry id: push-image uses: redhat-actions/push-to-registry@v2 with: image: ${{ steps.build-image.outputs.image }} tags: ${{ steps.build-image.outputs.tags }} registry: ${{ env.IMAGE_REGISTRY }} username: ${{ env.IMAGE_REGISTRY_USER }} password: ${{ env.IMAGE_REGISTRY_PASSWORD }} - name: Configure access to k8s uses: azure/k8s-set-context@v2 with: method: kubeconfig kubeconfig: ${{ secrets.KUBECONFIG }} - name: Update deployment to new image version run: | set -e -o pipefail kubectl set image deployments/www www=${{ env.IMAGE_REGISTRY }}/${{ steps.build-image.outputs.image }}:${{ steps.time.outputs.time }}