Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

339 eslint production build #340

Merged
merged 13 commits into from
Dec 18, 2023
42 changes: 42 additions & 0 deletions .github/workflows/build-test-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: "Build Test Lint"
run-name: Build Test Lint of ${{ github.ref_name }} by @${{ github.actor }}
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
inputs:
debug_enabled:
type: boolean
description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
required: false
default: false

jobs:
build:
uses: scientist-softserv/actions/.github/workflows/[email protected]
secrets: inherit
with:
platforms: 'linux/amd64'
webTarget: web
# TODO(alishaevn): figure out how to get the below passing in github actions
# it may be different than our typical setups since we don't use docker locally
# cypress:
# runs-on: ubuntu-22.04
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# - name: Cypress e2e
# uses: cypress-io/github-action@v6
# - name: Cypress component
# uses: cypress-io/github-action@v6
# with:
# component: true
# eslint:
# needs: build
# uses: scientist-softserv/actions/.github/workflows/[email protected]
# with:
# lint_cmd: docker-compose run web -- bash -c 'yarn && yarn lint'
24 changes: 0 additions & 24 deletions .github/workflows/build.yml

This file was deleted.

47 changes: 24 additions & 23 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,29 @@
# In order to deploy via github actions instead, please update/confirm the following files:
# - ops/production-deploy.tmpl.yaml
# - ops/staging-deploy.tmpl.yaml
# Next, uncomment the following lines

# name: "Deploy"
# run-name: Deploy (${{ github.ref_name }} -> ${{ inputs.environment }}) by @${{ github.actor }}
# on:
# workflow_dispatch:
# inputs:
# environment:
# description: 'Deploy to Environment'
# required: true
# default: 'staging'
# type: choice
# options:
# - staging
# - production
# debug_enabled:
# type: boolean
# description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
# required: false
# default: false
name: "Deploy"
run-name: Deploy (${{ github.ref_name }} -> ${{ inputs.environment }}) by @${{ github.actor }}
on:
workflow_dispatch:
inputs:
environment:
description: 'Deploy to Environment'
required: true
default: 'staging'
type: choice
options:
- staging
- production
debug_enabled:
type: boolean
description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
required: false
default: false

# jobs:
# deploy:
# uses: scientist-softserv/actions/.github/workflows/[email protected]
# secrets: inherit
jobs:
deploy:
# remove the line below to enable the job
if: false
Comment on lines +27 to +28
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

using this conditional to skip the workflow instead of commenting out the file.

ref: https://stackoverflow.com/a/75905933/8079848

uses: scientist-softserv/actions/.github/workflows/[email protected]
secrets: inherit
26 changes: 0 additions & 26 deletions .github/workflows/test-suite.yml

This file was deleted.

5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,8 @@ node_modules/

# Emacs
*.~undo-tree~

# Cypress
cypress/results
cypress/screenshots
cypress/videos
14 changes: 9 additions & 5 deletions cypress.config.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
const dotenvFlowPlugin = require('cypress-dotenv-flow')
const { defineConfig } = require("cypress")
const { defineConfig } = require('cypress')

module.exports = defineConfig({
component: {
devServer: {
framework: "next",
bundler: "webpack",
framework: 'next',
bundler: 'webpack',
},
},

e2e: {
baseUrl: 'http://localhost:3000',
chromeWebSecurity: false,
Expand All @@ -18,7 +17,7 @@ module.exports = defineConfig({
...process.env,
...config.env
}
return config
return config
},
},
env: {
Expand All @@ -27,4 +26,9 @@ module.exports = defineConfig({
NEXT_PUBLIC_PROVIDER_NAME: 'acme',
NEXT_PUBLIC_PROVIDER_ID: '572'
},
reporter: 'junit',
reporterOptions: {
mochaFile: 'cypress/results/results-[hash].xml',
toConsole: true,
},
});
73 changes: 41 additions & 32 deletions next.config.js
Original file line number Diff line number Diff line change
@@ -1,48 +1,57 @@
// This guard clause allows the app to still build in the event another exception handler will be used,
// or the sentry project hasn't been set up yet
if (!process.env.SENTRY_DSN) return

// This file sets a custom webpack configuration to use your Next.js app
// with Sentry.
// https://nextjs.org/docs/api-reference/next.config.js/introduction
// https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/
const { withSentryConfig } = require('@sentry/nextjs')
const SENTRY_DSN = process.env.SENTRY_DSN

const nextConfig = {
let nextConfig = {
output: 'standalone',
reactStrictMode: true,
swcMinify: true,
eslint: {
dirs: ['pages', 'utils'], // Only run ESLint on the 'pages' and 'utils' directories during production builds
},
sentry: {
// Use `hidden-source-map` rather than `source-map` as the Webpack `devtool`
// for client-side builds. (This will be the default starting in
// `@sentry/nextjs` version 8.0.0.) See
// https://webpack.js.org/configuration/devtool/ and
// https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/#use-hidden-source-map
// for more information.
hideSourceMaps: true,
// Warning: This allows production builds to successfully complete even if
// your project has ESLint errors.
// ref: https://nextjs.org/docs/pages/api-reference/next-config-js/eslint
ignoreDuringBuilds: true,
},
Copy link
Contributor Author

@alishaevn alishaevn Dec 16, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I confirmed that this works by pushing this branch to production on vercel, while eslint still has a failure.
Screenshot 2023-12-15 at 6 35 25 PM
image

}

const sentryWebpackPluginOptions = {
// Additional config options for the Sentry Webpack plugin. Keep in mind that
// the following options are set automatically, and overriding them is not
// recommended:
// release, url, configFile, stripPrefix, urlPrefix, include, ignore

silent: true, // Suppresses all logs
project: process.env.SENTRY_PROJECT,
org: process.env.SENTRY_ORG,
authToken: process.env.SENTRY_AUTH_TOKEN,
// For all available options, see:
// https://github.com/getsentry/sentry-webpack-plugin#options.
}
module.exports = nextConfig

// Make sure adding Sentry options is the last code to run before exporting, to
// ensure that your source maps include changes from all other Webpack plugins
module.exports = withSentryConfig(
nextConfig,
sentryWebpackPluginOptions
)
let sentryWebpackPluginOptions = {}
if (SENTRY_DSN) {
nextConfig = {
...nextConfig,
sentry: {
// Use `hidden-source-map` rather than `source-map` as the Webpack `devtool`
// for client-side builds. (This will be the default starting in
// `@sentry/nextjs` version 8.0.0.) See
// https://webpack.js.org/configuration/devtool/ and
// https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/#use-hidden-source-map
// for more information.
hideSourceMaps: true,
},
}

sentryWebpackPluginOptions = {
// Additional config options for the Sentry Webpack plugin. Keep in mind that
// the following options are set automatically, and overriding them is not
// recommended:
// release, url, configFile, stripPrefix, urlPrefix, include, ignore

silent: true, // Suppresses all logs
project: process.env.SENTRY_PROJECT,
org: process.env.SENTRY_ORG,
authToken: process.env.SENTRY_AUTH_TOKEN,
// For all available options, see:
// https://github.com/getsentry/sentry-webpack-plugin#options
}

module.exports = withSentryConfig(
nextConfig,
sentryWebpackPluginOptions
)
}
10 changes: 7 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@
"build": "next build",
"start": "next build && next start",
"lint": "next lint --dir pages --dir utils",
"cypress": "cypress run",
"cypress-gui": "cypress open",
"lint:fix": "next lint --dir pages --dir utils --fix",
"cypress:open:component": "cypress open --component",
"cypress:open:e2e": "start-server-and-test dev http://localhost:3000 \"cypress open --e2e\"",
"cypress:run:component": "cypress run --component",
"cypress:run:e2e": "start-server-and-test dev http://localhost:3000 \"cypress run --e2e\"",
"jest": "jest",
"jest-watch": "jest --watch",
"release": "release-it"
Expand All @@ -24,14 +27,15 @@
"@sentry/nextjs": "^7.42.0",
"axios": "^1.1.3",
"bootstrap": "^5.2.3",
"cookies-next": "^4.0.0",
"eslint": "^8.54.0",
"eslint-config-next": "^14.0.3",
"cookies-next": "^4.0.0",
"next": "12.3.1",
"next-auth": "^4.20.1",
"react": "18.2.0",
"react-dom": "18.2.0",
"sass": "^1.56.1",
"start-server-and-test": "^2.0.3",
"swr": "^1.3.0"
},
"devDependencies": {
Expand Down
3 changes: 2 additions & 1 deletion utils/cookies.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ export const enableCookies = () => {

const nonEssentialCookies = [
// TODO(alishaevn): create this list
// TODO(alishaevn): add these cookies to pages/legal-notices/cookie-policy.js under "Non-essential cookies" with a description and expiration time frame
// TODO(alishaevn): add these cookies to pages/legal-notices/cookie-policy.js under
// "Non-essential cookies" with a description and expiration time frame
Comment on lines +38 to +39
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

split into 2 lines to appease lint rules

]

export const disableCookies = () => {
Expand Down
Loading
Loading