Last updated: April 12, 2026
ShipDock natively manages your CI/CD by instantly catching push webhooks on your branch. This completely replaces the need for writing complex Docker build pipelines inside GitHub Actions.
However, if you wish to retain GitHub Actions for unit testing and linting, you should disable "Auto Deploy on Push" in your ShipDock Project settings. This ensures ShipDock only deploys after your tests pass.
Add the following workflow file to your repository at .github/workflows/shipdock-deploy.yml to trigger ShipDock only when your tests successfully conclude:
name: Deploy to ShipDock
on:
push:
branches: ["main"]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Unit Tests
run: npm test
deploy:
needs: test
runs-on: ubuntu-latest
steps:
- name: Trigger ShipDock Deploy
run: |
curl -X POST https://api.shipdock.example.com/api/deployments/
-H "Authorization: Bearer ${{ secrets.SHIPDOCK_TOKEN }}"
-H "Content-Type: application/json"
-d '{"project_id": "YOUR_PROJECT_ID"}'Ensure you generate an API Token in your ShipDock Account Settings and paste it into your GitHub repository's Action Secrets under the name SHIPDOCK_TOKEN.