name: Ci/Cd on: push: branches: [ "master" ] pull_request: branches: [ "master" ] jobs: Counter: runs-on: self-hosted steps: - name: Checkout the code uses: actions/checkout@v3 - name: Copy .env run: | cp /dockers/app/.env /actions-runner/_work/quyoshli_ecom/quyoshli_ecom/.env - name: Initialize Counter run: | if [ ! -f /dockers/counter/counter.txt ]; then echo 0 > /dockers/counter/counter.txt fi - name: Increment the Counter run: | COUNTER=$(cat /dockers/counter/counter.txt) COUNTER=$((COUNTER+1)) echo $COUNTER > /dockers/counter/counter.txt echo "Current run count: $COUNTER" Deploy: runs-on: self-hosted needs: Counter steps: - name: Deploy Docker Services run: | cd /actions-runner/_work/quyoshli_ecom/quyoshli_ecom # docker compose -f cloud-docker-compose.yaml down # docker rmi laravel docker compose -f cloud-docker-compose.yaml up -d --build Deploy2: runs-on: self-hosted needs: Deploy steps: - name: Deploy dashboard service env: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SERVER_IP: ${{ secrets.SERVER_IP }} USER_NAME: ${{ secrets.USER_NAME }} run: | echo "$SSH_PRIVATE_KEY" > private_key chmod 600 private_key ssh -i private_key -o StrictHostKeyChecking=no $USER_NAME@$SERVER_IP "cd /var/www/quyoshli_ecom && git pull origin master" rm private_key Checker: runs-on: self-hosted needs: Deploy steps: - name: Check if: success() run: | COUNTER=$(cat /dockers/counter/counter.txt) if [ $COUNTER -ge 20 ]; then echo "Running Docker prune..." docker system prune -a --volumes -f echo 0 > /dockers/counter/counter.txt else echo "Not time for prune yet." fi