name: Deploy on: push: branches: [ main ] workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest if: github.event_name == 'push' && github.ref == 'refs/heads/main' steps: - uses: actions/checkout@v3 - name: Deploy to Railway env: RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }} run: | if [ -z "$RAILWAY_TOKEN" ]; then echo "Railway token not configured. Skipping deployment." echo "To enable: Add RAILWAY_TOKEN secret to repository settings" exit 0 fi npm install -g @railway/cli railway link --token $RAILWAY_TOKEN railway deploy --service backend --service frontend --detach continue-on-error: true - name: Notify deployment if: success() uses: actions/github-script@v6 with: script: | github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: '✅ Deployment to Railway initiated. Check [Railway Dashboard](https://railway.app) for status.' }) continue-on-error: true docker-build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Build and push Docker images run: | docker buildx build --platform linux/amd64,linux/arm64 -t trustos:latest -f Dockerfile.prod --target backend . echo "Docker images built successfully" continue-on-error: true