Shipnative includes GitHub Actions workflows for continuous integration and deployment.
Included Workflows
CI Workflow
Runs on every push and pull request to ensure code quality.
Jobs
- Lint - ESLint checks
- Typecheck - TypeScript compilation
- Test - Jest test suite
- Build Web App - Expo web build with bundle size analysis
- Bundle Analysis - Tree-shaking and dependency checks
- Build Marketing - Marketing site build
Deploy Workflow
Handles production deployments for web and mobile.
Triggers
- Push to main → Auto-deploy web + marketing
- GitHub Release → Build + submit mobile apps to stores
- Manual dispatch → Select what to deploy
Required Secrets
Add these in GitHub Settings → Secrets:
Environment Secrets
Manual Deployment
- Go to Actions → Deploy
- Click Run workflow
- Select what to deploy:
- Deploy web app
- Deploy marketing site
- Build & submit iOS
- Build & submit Android
- Choose EAS profile (production/preview)
Preview Workflow
Creates preview deployments for pull requests.
Features
- Web preview URL - Vercel preview deployment
- Mobile preview - EAS Update with QR code
- Marketing preview - Separate preview for marketing site
- Auto-comments - PR comments with preview URLs
How It Works
- Open a PR with changes to the app
- GitHub Actions builds a preview
- Bot comments on PR with preview URLs
- Scan QR code to test on mobile device
Testing Mobile Previews: Install a development build with the preview channel configured, then scan the QR code from the PR comment.
Setup Guide
1. Get Expo Token
3. Set Up Vercel (Optional)
4. Add GitHub Secrets
Go to your repo → Settings → Secrets and variables → Actions → New repository secret
Add all required secrets listed above.
Customization
Changing Deploy Triggers
Edit .github/workflows/deploy.yml:
Adding Custom Jobs
Environment-Specific Deploys
Troubleshooting
Build Failing
- Check that all secrets are set correctly
- Verify EAS is configured:
eas build:configure
- Check build logs in EAS dashboard
Preview Not Working
- Ensure
VERCEL_TOKEN is valid
- Check Vercel project is linked
- Verify paths-filter is detecting changes
Mobile Submit Failing
- Verify App Store / Play Store credentials in EAS
- Check app version is incremented
- Review EAS submit logs
Don’t commit secrets! Always use GitHub Secrets for sensitive values. Never put API keys in workflow files.