Agrigo_api / .github /workflows /workflow_2.yml
NitinBot002's picture
Upload 47 files
46646b3 verified
name: Persistent NPort Tunnel - Workflow 2
on:
workflow_dispatch: # पहला वर्कफ़्लो इसे ट्रिगर करेगा
jobs:
deploy:
runs-on: ubuntu-latest
timeout-minutes: 355 # यह भी 6 घंटे तक चलेगा
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Build and Run Docker Container
run: |
docker build -t myapp .
docker run -d -p 5000:5000 --name myapp_container myapp
sleep 10
- name: Install Dependencies
run: |
sudo apt update && sudo apt install -y openssh-client jq curl
- name: Generate Random Subdomain
run: |
SUBDOMAIN=$(openssl rand -hex 4)
echo "SUBDOMAIN=$SUBDOMAIN" >> $GITHUB_ENV
- name: Start NPort Tunnel and Save URL
run: |
echo "Starting NPort Tunnel with subdomain: $SUBDOMAIN"
# Add cloudflare gpg key
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
# Add this repo to your apt repositories
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared any main' | sudo tee /etc/apt/sources.list.d/cloudflared.list
# install cloudflared
sudo apt-get update && sudo apt-get install cloudflared
sleep 5
sudo cloudflared service install ${{ secrets.CF_KEY }}
sleep 10
# टनल URL सेट करें
TUNNEL_URL="https://$SUBDOMAIN.nport.link"
echo "Generated Tunnel URL: $TUNNEL_URL"
# URL को `instance.json` में सेव करें
echo "{ \"tunnel_url\": \"$TUNNEL_URL\" }" > instance.json
- name: Commit and Push Tunnel URL
run: |
git diff --quiet && echo "No changes to commit" || (
git config --global user.email "github-actions@github.com"
git config --global user.name "GitHub Actions"
git add instance.json
git commit -m "Updated tunnel URL"
git push
)
- name: Trigger Workflow 1 After 5 Hours 40 Minutes
run: |
echo "Waiting for 5 hours 40 minutes before triggering workflow_1..."
sleep 20400 # 5 घंटे 40 मिनट (5.67 × 60 × 60 सेकंड)
echo "Triggering workflow_1 now..."
curl -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/${{ github.repository }}/actions/workflows/workflow_1.yml/dispatches \
-d '{"ref": "main"}'
- name: Keep Workflow Running for 6 Hours
run: tail -f /dev/null # इसे 6 घंटे तक चालू रखेगा