name: Deploy to Foundry Server on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: https://github.com/actions/checkout@v4 with: fetch-depth: 0 # Full history for tag counting - name: Generate CalVer version id: calver uses: cal/gitea-actions/calver@main - name: Setup Node.js uses: https://github.com/actions/setup-node@v4 with: node-version: '20' cache: 'npm' - name: Install dependencies run: npm ci - name: Build system run: npm run build - name: Deploy to Foundry server uses: https://github.com/burnett01/rsync-deployments@7.0.1 with: switches: -avz --delete --exclude='.git' --exclude='node_modules' --exclude='foundrydata' --exclude='.env' --exclude='.env.example' --exclude='.gitea' --exclude='.github' --exclude='.claude' --exclude='.husky' --exclude='docs' --exclude='docker-compose.yml' --exclude='test_results' path: ./ remote_path: /opt/foundry/data/Data/systems/vagabond/ remote_host: ${{ secrets.DEPLOY_HOST }} remote_user: root remote_key: ${{ secrets.DEPLOY_SSH_KEY }} - name: Fix ownership and restart Foundry uses: https://github.com/appleboy/ssh-action@v1 with: host: ${{ secrets.DEPLOY_HOST }} username: root key: ${{ secrets.DEPLOY_SSH_KEY }} script: | chown -R 1000:1000 /opt/foundry/data/Data/systems/vagabond/ cd /opt/foundry && docker compose restart foundry - name: Tag release if: success() uses: cal/gitea-actions/gitea-tag@main with: version: ${{ steps.calver.outputs.version }} token: ${{ github.token }}