switch to remix
This commit is contained in:
		
						commit
						52a0ba1b3b
					
				
					 77 changed files with 13468 additions and 0 deletions
				
			
		
							
								
								
									
										211
									
								
								.github/workflows/deploy.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										211
									
								
								.github/workflows/deploy.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,211 @@ | |||
| name: 🚀 Deploy | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - main | ||||
|       - dev | ||||
|   pull_request: {} | ||||
| 
 | ||||
| jobs: | ||||
|   lint: | ||||
|     name: ⬣ ESLint | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: 🛑 Cancel Previous Runs | ||||
|         uses: styfle/cancel-workflow-action@0.9.1 | ||||
| 
 | ||||
|       - name: ⬇️ Checkout repo | ||||
|         uses: actions/checkout@v3 | ||||
| 
 | ||||
|       - name: ⎔ Setup node | ||||
|         uses: actions/setup-node@v3 | ||||
|         with: | ||||
|           node-version: 16 | ||||
| 
 | ||||
|       - name: 📥 Download deps | ||||
|         uses: bahmutov/npm-install@v1 | ||||
| 
 | ||||
|       - name: 🔬 Lint | ||||
|         run: npm run lint | ||||
| 
 | ||||
|   typecheck: | ||||
|     name: ʦ TypeScript | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: 🛑 Cancel Previous Runs | ||||
|         uses: styfle/cancel-workflow-action@0.9.1 | ||||
| 
 | ||||
|       - name: ⬇️ Checkout repo | ||||
|         uses: actions/checkout@v3 | ||||
| 
 | ||||
|       - name: ⎔ Setup node | ||||
|         uses: actions/setup-node@v3 | ||||
|         with: | ||||
|           node-version: 16 | ||||
| 
 | ||||
|       - name: 📥 Download deps | ||||
|         uses: bahmutov/npm-install@v1 | ||||
| 
 | ||||
|       - name: 🔎 Type check | ||||
|         run: npm run typecheck --if-present | ||||
| 
 | ||||
|   vitest: | ||||
|     name: ⚡ Vitest | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: 🛑 Cancel Previous Runs | ||||
|         uses: styfle/cancel-workflow-action@0.9.1 | ||||
| 
 | ||||
|       - name: ⬇️ Checkout repo | ||||
|         uses: actions/checkout@v3 | ||||
| 
 | ||||
|       - name: ⎔ Setup node | ||||
|         uses: actions/setup-node@v3 | ||||
|         with: | ||||
|           node-version: 16 | ||||
| 
 | ||||
|       - name: 📥 Download deps | ||||
|         uses: bahmutov/npm-install@v1 | ||||
| 
 | ||||
|       - name: ⚡ Run vitest | ||||
|         run: npm run test -- --coverage | ||||
| 
 | ||||
|   cypress: | ||||
|     name: ⚫️ Cypress | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: 🛑 Cancel Previous Runs | ||||
|         uses: styfle/cancel-workflow-action@0.9.1 | ||||
| 
 | ||||
|       - name: ⬇️ Checkout repo | ||||
|         uses: actions/checkout@v3 | ||||
| 
 | ||||
|       - name: 🏄 Copy test env vars | ||||
|         run: cp .env.example .env | ||||
| 
 | ||||
|       - name: ⎔ Setup node | ||||
|         uses: actions/setup-node@v3 | ||||
|         with: | ||||
|           node-version: 16 | ||||
| 
 | ||||
|       - name: 📥 Download deps | ||||
|         uses: bahmutov/npm-install@v1 | ||||
| 
 | ||||
|       - name: 🐳 Docker compose | ||||
|         # the sleep is just there to give time for postgres to get started | ||||
|         run: docker-compose up -d && sleep 3 | ||||
|         env: | ||||
|           DATABASE_URL: "postgresql://postgres:postgres@localhost:5432/postgres" | ||||
| 
 | ||||
|       - name: 🛠 Setup Database | ||||
|         run: npx prisma migrate reset --force | ||||
| 
 | ||||
|       - name: 🌱 Seed the Database | ||||
|         run: npx prisma db seed | ||||
| 
 | ||||
|       - name: ⚙️ Build | ||||
|         run: npm run build | ||||
| 
 | ||||
|       - name: 🌳 Cypress run | ||||
|         uses: cypress-io/github-action@v3 | ||||
|         with: | ||||
|           start: npm run start:mocks | ||||
|           wait-on: "http://localhost:8811" | ||||
|         env: | ||||
|           PORT: "8811" | ||||
| 
 | ||||
|   build: | ||||
|     name: 🐳 Build | ||||
|     # only build/deploy main branch on pushes | ||||
|     if: ${{ (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev') && github.event_name == 'push' }} | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: 🛑 Cancel Previous Runs | ||||
|         uses: styfle/cancel-workflow-action@0.9.1 | ||||
| 
 | ||||
|       - name: ⬇️ Checkout repo | ||||
|         uses: actions/checkout@v3 | ||||
| 
 | ||||
|       - name: 👀 Read app name | ||||
|         uses: SebRollen/toml-action@v1.0.0 | ||||
|         id: app_name | ||||
|         with: | ||||
|           file: "fly.toml" | ||||
|           field: "app" | ||||
| 
 | ||||
|       - name: 🐳 Set up Docker Buildx | ||||
|         uses: docker/setup-buildx-action@v1 | ||||
| 
 | ||||
|       # Setup cache | ||||
|       - name: ⚡️ Cache Docker layers | ||||
|         uses: actions/cache@v2 | ||||
|         with: | ||||
|           path: /tmp/.buildx-cache | ||||
|           key: ${{ runner.os }}-buildx-${{ github.sha }} | ||||
|           restore-keys: | | ||||
|             ${{ runner.os }}-buildx- | ||||
| 
 | ||||
|       - name: 🔑 Fly Registry Auth | ||||
|         uses: docker/login-action@v1 | ||||
|         with: | ||||
|           registry: registry.fly.io | ||||
|           username: x | ||||
|           password: ${{ secrets.FLY_API_TOKEN }} | ||||
| 
 | ||||
|       - name: 🐳 Docker build | ||||
|         uses: docker/build-push-action@v2 | ||||
|         with: | ||||
|           context: . | ||||
|           push: true | ||||
|           tags: registry.fly.io/${{ steps.app_name.outputs.value }}:${{ github.ref_name }}-${{ github.sha }} | ||||
|           build-args: | | ||||
|             COMMIT_SHA=${{ github.sha }} | ||||
|           cache-from: type=local,src=/tmp/.buildx-cache | ||||
|           cache-to: type=local,mode=max,dest=/tmp/.buildx-cache-new | ||||
| 
 | ||||
|       # This ugly bit is necessary if you don't want your cache to grow forever | ||||
|       # till it hits GitHub's limit of 5GB. | ||||
|       # Temp fix | ||||
|       # https://github.com/docker/build-push-action/issues/252 | ||||
|       # https://github.com/moby/buildkit/issues/1896 | ||||
|       - name: 🚚 Move cache | ||||
|         run: | | ||||
|           rm -rf /tmp/.buildx-cache | ||||
|           mv /tmp/.buildx-cache-new /tmp/.buildx-cache | ||||
| 
 | ||||
|   deploy: | ||||
|     name: 🚀 Deploy | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: [lint, typecheck, vitest, cypress, build] | ||||
|     # only build/deploy main branch on pushes | ||||
|     if: ${{ (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev') && github.event_name == 'push' }} | ||||
| 
 | ||||
|     steps: | ||||
|       - name: 🛑 Cancel Previous Runs | ||||
|         uses: styfle/cancel-workflow-action@0.9.1 | ||||
| 
 | ||||
|       - name: ⬇️ Checkout repo | ||||
|         uses: actions/checkout@v3 | ||||
| 
 | ||||
|       - name: 👀 Read app name | ||||
|         uses: SebRollen/toml-action@v1.0.0 | ||||
|         id: app_name | ||||
|         with: | ||||
|           file: "fly.toml" | ||||
|           field: "app" | ||||
| 
 | ||||
|       - name: 🚀 Deploy Staging | ||||
|         if: ${{ github.ref == 'refs/heads/dev' }} | ||||
|         uses: superfly/flyctl-actions@1.3 | ||||
|         with: | ||||
|           args: "deploy --app ${{ steps.app_name.outputs.value }}-staging --image registry.fly.io/${{ steps.app_name.outputs.value }}:${{ github.ref_name }}-${{ github.sha }}" | ||||
|         env: | ||||
|           FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} | ||||
| 
 | ||||
|       - name: 🚀 Deploy Production | ||||
|         if: ${{ github.ref == 'refs/heads/main' }} | ||||
|         uses: superfly/flyctl-actions@1.3 | ||||
|         with: | ||||
|           args: "deploy --image registry.fly.io/${{ steps.app_name.outputs.value }}:${{ github.ref_name }}-${{ github.sha }}" | ||||
|         env: | ||||
|           FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue