Minikube testing
parent
a06c7e959c
commit
76ff76bd4c
|
|
@ -99,19 +99,45 @@ jobs:
|
||||||
version: '288.0.0'
|
version: '288.0.0'
|
||||||
service_account_email: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_EMAIL }}
|
service_account_email: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_EMAIL }}
|
||||||
service_account_key: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_KEY }}
|
service_account_key: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_KEY }}
|
||||||
- name: Get Gist
|
- uses: opsgang/ga-setup-minikube@v0.1.1
|
||||||
id: get
|
|
||||||
uses: andymckay/get-gist-action@master
|
|
||||||
with:
|
with:
|
||||||
gistURL: 'https://gist.github.com/frostebite/58fdeb02d45f6e7a24bcbe36f6bdc051'
|
minikube-version: 1.4.0
|
||||||
- id: read-k8s-config
|
k8s-version: 1.15.1
|
||||||
|
- name: Testing
|
||||||
run: |
|
run: |
|
||||||
chmod +x ${{ steps.get.outputs.file }}
|
minikube start
|
||||||
${{ steps.get.outputs.file }} ${{ env.GKE_PROJECT }} ${{ env.GKE_CLUSTER }} ${{ env.GKE_ZONE }}
|
minikube update-context
|
||||||
gcloud container clusters get-credentials $GKE_CLUSTER \
|
kubectl cluster-info
|
||||||
--zone $GKE_ZONE --project $GKE_PROJECT
|
kubectl get pods -n kube-system
|
||||||
# run a command to get access-token
|
apiVersion: v1
|
||||||
kubectl version
|
cat <<EOF | kubectl apply -f -
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: task-pv-volume
|
||||||
|
labels:
|
||||||
|
type: local
|
||||||
|
spec:
|
||||||
|
storageClassName: manual
|
||||||
|
capacity:
|
||||||
|
storage: 10Gi
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
hostPath:
|
||||||
|
path: "/data/task-pv-volume"
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: task-pv-claim
|
||||||
|
spec:
|
||||||
|
storageClassName: manual
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 2Gi
|
||||||
|
EOF
|
||||||
- uses: frostebite/File-To-Base64@master
|
- uses: frostebite/File-To-Base64@master
|
||||||
id: read-base64
|
id: read-base64
|
||||||
with:
|
with:
|
||||||
|
|
@ -126,16 +152,11 @@ jobs:
|
||||||
githubToken: ${{ secrets.GITHUB_TOKEN }}
|
githubToken: ${{ secrets.GITHUB_TOKEN }}
|
||||||
projectPath: test-project
|
projectPath: test-project
|
||||||
unityVersion: 2019.3.15f1
|
unityVersion: 2019.3.15f1
|
||||||
- uses: frostebite/K8s-Download-Volume@master
|
kubeVolume: task-pv-claim
|
||||||
with:
|
- run: |
|
||||||
kubeConfig: ${{ steps.read-base64.outputs.base64 }}
|
ls /data/task-pv-volume
|
||||||
volume: ${{ steps.k8s-unity-build.outputs.volume }}
|
|
||||||
sourcePath: repo/build/
|
|
||||||
- uses: actions/upload-artifact@v1
|
- uses: actions/upload-artifact@v1
|
||||||
with:
|
with:
|
||||||
name: Kubernetes Build (${{ matrix.targetPlatform }})
|
name: Kubernetes Build (${{ matrix.targetPlatform }})
|
||||||
path: k8s-volume-download
|
path: k8s-volume-download
|
||||||
- run: |
|
|
||||||
pods=$(kubectl get pods -o json | jq '.items | .[].metadata.labels' | jq 'select("app", "unity-builder")')
|
|
||||||
if [ -z pods ]; then gcloud container clusters delete ${{env.GKE_CLUSTER}} --zone $GKE_ZONE --project $GKE_PROJECT --quiet; fi
|
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,10 @@ inputs:
|
||||||
default: ''
|
default: ''
|
||||||
required: false
|
required: false
|
||||||
description: 'Supply a base64 encoded kubernetes config to run builds on kubernetes and stream logs until completion.'
|
description: 'Supply a base64 encoded kubernetes config to run builds on kubernetes and stream logs until completion.'
|
||||||
|
kubeVolume:
|
||||||
|
default: ''
|
||||||
|
required: false
|
||||||
|
description: 'Supply a Persistent Volume Claim name to use for the Unity build.'
|
||||||
kubeContainerMemory:
|
kubeContainerMemory:
|
||||||
default: '800M'
|
default: '800M'
|
||||||
required: false
|
required: false
|
||||||
|
|
@ -38,7 +42,7 @@ inputs:
|
||||||
default: '0.25'
|
default: '0.25'
|
||||||
required: false
|
required: false
|
||||||
description: 'Amount of CPU time to assign the build container in Kubernetes (https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes)'
|
description: 'Amount of CPU time to assign the build container in Kubernetes (https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes)'
|
||||||
kubeVolumeDiscSize:
|
kubeVolumeSize:
|
||||||
default: '5Gi'
|
default: '5Gi'
|
||||||
required: false
|
required: false
|
||||||
description: 'Amount of disc space to assign the Kubernetes Persistent Volume (https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes)'
|
description: 'Amount of disc space to assign the Kubernetes Persistent Volume (https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes)'
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -40,7 +40,8 @@ class BuildParameters {
|
||||||
githubToken: Input.githubToken,
|
githubToken: Input.githubToken,
|
||||||
kubeContainerMemory: Input.kubeContainerMemory,
|
kubeContainerMemory: Input.kubeContainerMemory,
|
||||||
kubeContainerCPU: Input.kubeContainerCPU,
|
kubeContainerCPU: Input.kubeContainerCPU,
|
||||||
kubeVolumeDiscSize: Input.kubeVolumeDiscSize,
|
kubeVolumeSize: Input.kubeVolumeSize,
|
||||||
|
kubeVolume: Input.kubeVolume,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -97,8 +97,12 @@ class Input {
|
||||||
return core.getInput('kubeContainerCPU') || '';
|
return core.getInput('kubeContainerCPU') || '';
|
||||||
}
|
}
|
||||||
|
|
||||||
static get kubeVolumeDiscSize() {
|
static get kubeVolumeSize() {
|
||||||
return core.getInput('kubeVolumeDiscSize') || '';
|
return core.getInput('kubeVolumeSize') || '';
|
||||||
|
}
|
||||||
|
|
||||||
|
static get kubeVolume() {
|
||||||
|
return core.getInput('kubeVolume') || '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,10 @@ class Kubernetes {
|
||||||
}
|
}
|
||||||
|
|
||||||
static async createPersistentVolumeClaim() {
|
static async createPersistentVolumeClaim() {
|
||||||
|
if (this.buildParameters.kubeVolume) {
|
||||||
|
this.pvcName = this.buildParameters.kubeVolume;
|
||||||
|
return;
|
||||||
|
}
|
||||||
const pvcManifest = {
|
const pvcManifest = {
|
||||||
apiVersion: 'v1',
|
apiVersion: 'v1',
|
||||||
kind: 'PersistentVolumeClaim',
|
kind: 'PersistentVolumeClaim',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue