Skip to content

Commit

Permalink
Merge pull request #340 from scientist-softserv/339-eslint-production…
Browse files Browse the repository at this point in the history
…-build

339 eslint production build
alishaevn authored Dec 18, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
2 parents 50fc6ed + d0d5020 commit 2609de2
Showing 10 changed files with 291 additions and 138 deletions.
39 changes: 39 additions & 0 deletions .github/workflows/build-test-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
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
cypress:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cypress e2e
uses: cypress-io/github-action@v6
with:
start: yarn start
wait-on: 'http://localhost:3000'
eslint:
needs: build
uses: scientist-softserv/actions/.github/workflows/[email protected]
with:
lint_cmd: docker compose run web sh -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
@@ -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
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
@@ -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,
@@ -18,7 +17,7 @@ module.exports = defineConfig({
...process.env,
...config.env
}
return config
return config
},
},
env: {
@@ -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,
},
}

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
)
}
14 changes: 8 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
@@ -6,15 +6,16 @@
"node": "^18.13.0"
},
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next build && next start",
"cypress:e2e": "start-server-and-test dev http://localhost:3000 \"cypress open --e2e --browser electron\"",
"cypress:headless:e2e": "start-server-and-test dev http://localhost:3000 \"cypress run --e2e --browser electron\"",
"dev": "next dev",
"lint": "next lint --dir pages --dir utils",
"cypress": "cypress run",
"cypress-gui": "cypress open",
"lint:fix": "next lint --dir pages --dir utils --fix",
"jest": "jest",
"jest-watch": "jest --watch",
"release": "release-it"
"release": "release-it",
"start": "next build && next start"
},
"dependencies": {
"@rjsf/core": "^5.0.0-beta.17",
@@ -24,14 +25,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": {
3 changes: 2 additions & 1 deletion utils/cookies.js
Original file line number Diff line number Diff line change
@@ -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
]

export const disableCookies = () => {
184 changes: 163 additions & 21 deletions yarn.lock

Large diffs are not rendered by default.

1 comment on commit 2609de2

@vercel
Copy link

@vercel vercel bot commented on 2609de2 Dec 18, 2023

Choose a reason for hiding this comment

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

Please sign in to comment.