name: Build & Deploy OS League Tools on: push: branches: - main jobs: build: runs-on: ["cicd"] steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' cache-dependency-path: os-league-tools-master/package-lock.json - name: Install dependencies working-directory: os-league-tools-master run: npm ci - name: Build production bundle working-directory: os-league-tools-master run: npm run build env: CI: false - name: Archive build working-directory: os-league-tools-master run: tar -czf build.tar.gz build/ - name: Upload artifact uses: actions/upload-artifact@v3 with: name: frontend-build path: os-league-tools-master/build.tar.gz deploy: runs-on: [frontend] needs: build steps: - name: Download artifact uses: actions/download-artifact@v3 with: name: frontend-build path: /tmp/os-league-deploy - name: Verify paths run: | echo "Artifact contents:" ls -la /tmp/os-league-deploy/ echo "Deploy target:" ls -la /home/sonder/leagues-tools/ - name: Stop service run: sudo systemctl stop os-league-tools || true - name: Deploy new build run: | sudo rm -rf /home/sonder/leagues-tools/os-league-tools-master/build sudo mkdir -p /home/sonder/leagues-tools/os-league-tools-master sudo tar -xzf /tmp/os-league-deploy/build.tar.gz -C /home/sonder/leagues-tools/os-league-tools-master/ sudo chown -R sonder:sonder /home/sonder/leagues-tools/os-league-tools-master/build - name: Start service run: sudo systemctl start os-league-tools - name: Cleanup deploy artifacts run: rm -rf /tmp/os-league-deploy