Files
homepage/.github/workflows/k8s.yml
T

63 lines
1.8 KiB
YAML

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
script: |
set -e -o pipefail
kubectl set image deployments/www www=${{ env.IMAGE_REGISTRY }}/${{ steps.build-image.outputs.image }}:${{ steps.time.outputs.time }}