From 2df77185ad3a1238b6cbd4f17156768f2b0b3708 Mon Sep 17 00:00:00 2001 From: Matt Thompson Date: Fri, 7 May 2021 15:12:06 -0400 Subject: [PATCH 1/4] Heroku updates: - Now supports - adds procfile creation - adds .nvmrc - fixes typo in package.json - updates package.json conditionals (removes server-express) - fixes named export bug in test/helpers.ts --- .nvmrc | 1 + packages/create-bison-app/index.js | 1 + .../template/package.json.ejs | 7 +------ .../pages/api/{graphql.ts.ejs => graphql.ts} | 21 ------------------- .../template/tests/helpers.ts | 2 +- 5 files changed, 4 insertions(+), 28 deletions(-) create mode 100644 .nvmrc rename packages/create-bison-app/template/pages/api/{graphql.ts.ejs => graphql.ts} (52%) diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..3f01c9b1 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v14.6.0 diff --git a/packages/create-bison-app/index.js b/packages/create-bison-app/index.js index 9d301f60..190cc276 100644 --- a/packages/create-bison-app/index.js +++ b/packages/create-bison-app/index.js @@ -66,6 +66,7 @@ module.exports = async ({ name, ...answers }) => { variables.host.createAppsAndPipelines, task: async () => { const repoName = variables.githubRepo.match(/(\w+\/\w+).git$/)[1]; + await fsPromises.writeFile("Procfile", "web: yarn db:deploy && yarn start"); // create staging app await execa( diff --git a/packages/create-bison-app/template/package.json.ejs b/packages/create-bison-app/template/package.json.ejs index 96af5caa..e65d7dd4 100644 --- a/packages/create-bison-app/template/package.json.ejs +++ b/packages/create-bison-app/template/package.json.ejs @@ -13,7 +13,7 @@ "cypress:open": "cypress open", "cypress:run": "cypress run", "db:migrate": "yarn -s prisma migrate dev && yarn build:prisma", - "db:deploy": "yarn -s primsa deploy && yarn build:prisma", + "db:deploy": "yarn -s prisma migrate deploy && yarn build:prisma", "db:reset": "yarn prisma migrate reset && yarn build:prisma", "db:setup": "yarn db:migrate && yarn prisma generate", "db:drop": "DOTENV_CONFIG_PATH=./prisma/.env ts-node -r dotenv/config ./scripts/dropDatabase", @@ -46,12 +46,7 @@ "@chakra-ui/react": "1.3.4", "@chakra-ui/theme": "1.7.1", "@prisma/client": "^2.19.0", -<% if (host.name === 'vercel') { -%> "apollo-server-micro": "^2.18.1", -<% } -%> -<% if (host.name === 'heroku') { -%> - "apollo-server-express": "^2.18.1", -<% } -%> "bcryptjs": "^2.4.3", "cross-fetch": "3.0.5", "@emotion/react": "^11.0.0", diff --git a/packages/create-bison-app/template/pages/api/graphql.ts.ejs b/packages/create-bison-app/template/pages/api/graphql.ts similarity index 52% rename from packages/create-bison-app/template/pages/api/graphql.ts.ejs rename to packages/create-bison-app/template/pages/api/graphql.ts index ab446c48..6ae9e2b9 100644 --- a/packages/create-bison-app/template/pages/api/graphql.ts.ejs +++ b/packages/create-bison-app/template/pages/api/graphql.ts @@ -1,26 +1,15 @@ -<% if (host.name === 'heroku') { -%> - import express from 'express'; -import { ApolloServer } from 'apollo-server-express' -<% } -%> -<% if (host.name === 'vercel') { -%> import { ApolloServer } from 'apollo-server-micro'; -<% } -%> - import { createContext } from '../../graphql/context'; import { schema } from '../../graphql/schema'; export const GRAPHQL_PATH = '/api/graphql'; -<% if (host.name === 'heroku') { -%> -<% } -%> -<% if (host.name === 'vercel') { -%> // this config block is REQUIRED on Vercel! It stops the body of incoming HTTP requests from being parsed export const config = { api: { bodyParser: false, }, }; -<% } -%> export const server = new ApolloServer({ schema, @@ -30,14 +19,4 @@ export const server = new ApolloServer({ cacheControl: true, }); -<% if (host.name === 'vercel') { -%> export default server.createHandler({ path: GRAPHQL_PATH }); -<% } -%> -<% if (host.name === 'heroku') { -%> -const app = express(); -server.applyMiddleware({ app }); - -app.listen({ port: process.env.PORT || 4000 }, () => - console.log(`🚀 Server ready at http://localhost:4000${server.graphqlPath}`) -); -<% } -%> diff --git a/packages/create-bison-app/template/tests/helpers.ts b/packages/create-bison-app/template/tests/helpers.ts index d306e61f..3e513d55 100644 --- a/packages/create-bison-app/template/tests/helpers.ts +++ b/packages/create-bison-app/template/tests/helpers.ts @@ -5,7 +5,7 @@ import request from 'supertest'; import { User } from '@prisma/client'; import { Client } from 'pg'; -import server, { GRAPHQL_PATH } from '../pages/api/graphql'; +import {server, GRAPHQL_PATH } from '../pages/api/graphql'; import { appJwtForUser } from '../services/auth'; import { prisma, connect, disconnect } from '../lib/prisma'; From ed1144d493d897a9b17b858a42735fd69f31b056 Mon Sep 17 00:00:00 2001 From: Matt Thompson Date: Fri, 7 May 2021 15:26:57 -0400 Subject: [PATCH 2/4] Adds Procfile until Pipeline bug resolved --- packages/create-bison-app/index.js | 3 ++- .nvmrc => packages/create-bison-app/template/.nvmrc | 0 packages/create-bison-app/template/Procfile | 1 + packages/create-bison-app/template/tests/helpers.ts | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) rename .nvmrc => packages/create-bison-app/template/.nvmrc (100%) create mode 100644 packages/create-bison-app/template/Procfile diff --git a/packages/create-bison-app/index.js b/packages/create-bison-app/index.js index 190cc276..f555c753 100644 --- a/packages/create-bison-app/index.js +++ b/packages/create-bison-app/index.js @@ -66,7 +66,8 @@ module.exports = async ({ name, ...answers }) => { variables.host.createAppsAndPipelines, task: async () => { const repoName = variables.githubRepo.match(/(\w+\/\w+).git$/)[1]; - await fsPromises.writeFile("Procfile", "web: yarn db:deploy && yarn start"); + // ! Bug w/ Pipelines, better error handling needed. + // await fsPromises.writeFile("Procfile", "web: yarn db:deploy && yarn start"); // create staging app await execa( diff --git a/.nvmrc b/packages/create-bison-app/template/.nvmrc similarity index 100% rename from .nvmrc rename to packages/create-bison-app/template/.nvmrc diff --git a/packages/create-bison-app/template/Procfile b/packages/create-bison-app/template/Procfile new file mode 100644 index 00000000..2c90b58b --- /dev/null +++ b/packages/create-bison-app/template/Procfile @@ -0,0 +1 @@ +web: yarn db:deploy && yarn start diff --git a/packages/create-bison-app/template/tests/helpers.ts b/packages/create-bison-app/template/tests/helpers.ts index 3e513d55..597ed24a 100644 --- a/packages/create-bison-app/template/tests/helpers.ts +++ b/packages/create-bison-app/template/tests/helpers.ts @@ -5,7 +5,7 @@ import request from 'supertest'; import { User } from '@prisma/client'; import { Client } from 'pg'; -import {server, GRAPHQL_PATH } from '../pages/api/graphql'; +import { server, GRAPHQL_PATH } from '../pages/api/graphql'; import { appJwtForUser } from '../services/auth'; import { prisma, connect, disconnect } from '../lib/prisma'; From f5622100accab88cde092529f32facf796efbf3b Mon Sep 17 00:00:00 2001 From: Matt Thompson Date: Mon, 10 May 2021 14:47:27 -0400 Subject: [PATCH 3/4] bump Node version req --- .github/workflows/tests.yml | 2 +- packages/create-bison-app/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0a77615e..1b8e3552 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -8,7 +8,7 @@ jobs: strategy: matrix: - node-version: [10.x, 12.x, 14.x] + node-version: [12.x, 14.x, 16.x] steps: - name: Checkout diff --git a/packages/create-bison-app/package.json b/packages/create-bison-app/package.json index c51fd66c..fa6055ea 100644 --- a/packages/create-bison-app/package.json +++ b/packages/create-bison-app/package.json @@ -11,7 +11,7 @@ }, "bin": "cli.js", "engines": { - "node": ">=10" + "node": ">=12" }, "scripts": { "test:e2e": "start-server-and-test 'node ./scripts/createAppAndStartServer foo --acceptDefaults' 3001 'cypress run --spec cypress/integration/createBisonAppWithDefaults.test.js'", From 655b62437b62ff9eb2701943ff8c9dc500087dbc Mon Sep 17 00:00:00 2001 From: Matt Thompson Date: Mon, 10 May 2021 14:54:28 -0400 Subject: [PATCH 4/4] remove 16.x --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1b8e3552..29544f42 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -8,7 +8,7 @@ jobs: strategy: matrix: - node-version: [12.x, 14.x, 16.x] + node-version: [12.x, 14.x] steps: - name: Checkout