Skip to content

Add user_data.sh file for runner #26

Add user_data.sh file for runner

Add user_data.sh file for runner #26

Workflow file for this run

name: Ant Media Server Release
on:
push:
branches: [ "add_helm_repo" ]
paths-ignore:
- '**/README.md'
- '**/.github/**'
- '**/package.sh'
- '**/ams-k8s-ssl.sh'
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
test_repo:
runs-on: self-hosted
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Minikube
run: |
sudo apt-get update
sudo apt-get install -y conntrack
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
- name: Start Minikube
run: |
sudo usermod -aG docker $USER
newgrp docker
sudo systemctl start docker
minikube start --driver=docker
- name: Install Helm
run: |
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
- name: Install dependencies
run: |
helm dependency update .
- name: Lint Helm chart
run: |
helm lint .
- name: Deploy Helm chart to Minikube
run: |
helm repo add antmedia https://ant-media.github.io/helm
helm repo update
helm search repo
helm install antmedia antmedia/antmedia --set origin=origin.antmedia.cloud --namespace antmedia --create-namespace
- name: Wait for containers to be ready
run: |
while true; do
STATUS=$(kubectl get pods -n antmedia -o jsonpath='{.items[0].status.containerStatuses[0].ready}')
if [ "$STATUS" == "true" ]; then
break
fi
sleep 5
done
- name: Get Minikube IP
id: minikube_ip
run: echo "::set-output name=ip::$(minikube ip)"
- name: Test pod using curl
id: curl_result
run: |
sleep 30
status_code=$(curl -s -o /dev/null -w "%{http_code}" http://${{ steps.minikube_ip.outputs.ip }}:5080)
echo "::set-output name=status_code::$status_code"
- name: Check curl result
run: |
if [[ "${{ steps.curl_result.outputs.status_code }}" -eq 200 ]]; then
echo "Ant Media Server is running successfully."
else
echo "Ant Media Server is not accessible. HTTP status code: ${{ steps.curl_result.outputs.status_code }}"
exit 1
fi
- name: Uninstall Helm release
run: |
helm uninstall antmedia -n antmedia
- name: Stop Minikube
run: minikube stop
release:
needs: test_repo
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Get version
id: version
run: echo "version=$(cat VERSION)" >> $GITHUB_OUTPUT
- uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
if: steps.version.outputs.released == 'true
automatic_release_tag: ${{ steps.version.outputs.version }}
prerelease: false
files: |
antmedia-${{ steps.version.outputs.version }}.tgz