Add user_data.sh file for runner #26
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |