Deploy browser pre-alpha
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
name: Deploy STEP3 Web Game
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch: {}
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: self-hosted
|
||||
|
||||
env:
|
||||
IMAGE_TAR: /tmp/step3-web.tar
|
||||
NODES: "192.168.86.72 192.168.86.73 192.168.86.74"
|
||||
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set build identity
|
||||
run: |
|
||||
echo "BUILD_TAG=$(git rev-parse HEAD)" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Build Web game image
|
||||
run: |
|
||||
docker build -f web/Dockerfile -t "step3-web:${BUILD_TAG}" .
|
||||
|
||||
- name: Save image
|
||||
run: |
|
||||
docker save "step3-web:${BUILD_TAG}" -o "${IMAGE_TAR}"
|
||||
|
||||
- name: Import image on Kubernetes nodes
|
||||
run: |
|
||||
for node in ${NODES}; do
|
||||
scp -o StrictHostKeyChecking=no "${IMAGE_TAR}" hz@"$node":/tmp/step3-web.tar
|
||||
ssh -o StrictHostKeyChecking=no hz@"$node" "sudo ctr -n k8s.io images import /tmp/step3-web.tar && rm -f /tmp/step3-web.tar"
|
||||
done
|
||||
|
||||
- name: Clean runner image archive
|
||||
if: always()
|
||||
run: rm -f "${IMAGE_TAR}"
|
||||
|
||||
- name: Configure kubeconfig
|
||||
env:
|
||||
KUBECONFIG_CONTENT: ${{ secrets.KUBECONFIG }}
|
||||
run: |
|
||||
if [ -n "$KUBECONFIG_CONTENT" ]; then
|
||||
mkdir -p /tmp/kube
|
||||
printf '%s\n' "$KUBECONFIG_CONTENT" > /tmp/kube/config
|
||||
echo "KUBECONFIG=/tmp/kube/config" >> "$GITHUB_ENV"
|
||||
fi
|
||||
|
||||
- name: Deploy Web game
|
||||
run: |
|
||||
kubectl create namespace step3-web --dry-run=client -o yaml | kubectl apply -f -
|
||||
kubectl apply -f web/k8s/service.yaml -n step3-web
|
||||
sed "s|step3-web:latest|step3-web:${BUILD_TAG}|" web/k8s/deployment.yaml | kubectl apply -n step3-web -f -
|
||||
kubectl rollout status deployment/step3-web -n step3-web --timeout=180s
|
||||
Reference in New Issue
Block a user