name: Deploy App on: workflow_dispatch: push: branches: - main jobs: auto-deploy: runs-on: self-hosted env: PORT: ${{ secrets.PORT }} CLIENT_ID: ${{ secrets.CLIENT_ID }} CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }} GRAPHQL_ENDPOINT: ${{ secrets.GRAPHQL_ENDPOINT }} NEXTAUTH_SECRET: ${{ secrets.NEXTAUTH_SECRET }} NEXTAUTH_URL: ${{ secrets.NEXTAUTH_URL }} PROXY_URI: ${{ secrets.PROXY_URI }} API_URI: ${{ secrets.API_URI }} API_KEY: ${{ secrets.API_KEY }} DISQUS_SHORTNAME: ${{ secrets.DISQUS_SHORTNAME }} ADMIN_USERNAME: ${{ secrets.ADMIN_USERNAME }} DATABASE_URL: ${{ secrets.DATABASE_URL }} REDIS_URL: ${{ secrets.REDIS_URL }} steps: - name: Checkout code uses: actions/checkout@v2 - name: Set up Node.js uses: actions/setup-node@v2 with: node-version: 18 - name: Install dependencies run: bun install - name: Generate Prisma run: bunx prisma generate || exit - name: Build the project run: BUILD_DIR=temp bun run build || exit - name: Check if temp directory exists run: | if [ ! -d "temp" ]; then echo '\033[31m temp Directory not exists!\033[0m' exit 1 fi - name: Remove .next directory run: rm -rf .next - name: Move temp to .next directory run: mv temp .next - name: Set PORT run: echo "PORT=1000" >> $GITHUB_ENV - name: Check if PM2 process exists run: | if pm2 list | grep -q 'moopa'; then echo "PM2 process 'moopa' exists" else echo "PM2 process 'moopa' does not exist, starting a new process" pm2 start bun -n moopa -- start fi - name: Reload PM2 run: pm2 stop moopa pm2 start moopa --update-env