I am working on a react-weather application for self learning purpose.
Deployed the same in gh-pages.
URL
https://davisraimon.github.io/react-weather/
Repo
https://github.com/davisraimon/react-weather
When tried to integrate my application with Travis Ci, i got error as follows.
It says like i have to change some env variable called Process.env.CI.
$ git clone --depth=50 --branch=master https://github.com/davisraimon/react-weather.git davisraimon/react-weather
nvm.install
4.18s$ nvm install stable
cache.1
Setting up build cache
cache.npm
$ node --version
v14.4.0
$ npm --version
6.14.5
$ nvm --version
0.35.3
install.npm
13.21s$ npm ci
7.45s$ npm run build
> react-weather@0.1.0 build /home/travis/build/davisraimon/react-weather
> react-scripts build
Creating an optimized production build...
Treating warnings as errors because process.env.CI = true.
Most CI servers set it automatically.
Failed to compile.
./src/components/form.component.js
Line 1:17: 'Component' is defined but never used no-unused-vars
./src/App.js
Line 2:8: 'logo' is defined but never used no-unused-vars
Line 8:7: 'API_key' is assigned a value but never used no-unused-vars
Line 37:5: Expected a default case default-case
Line 53:14: Expected '===' and instead saw '==' eqeqeq
Line 69:20: Expected '===' and instead saw '==' eqeqeq
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! react-weather@0.1.0 build: `react-scripts build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the react-weather@0.1.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/travis/.npm/_logs/2020-06-30T17_45_07_887Z-debug.log
The command "npm run build" exited with 1.
cache.2
store build cache
I added env variable in .travis.yml file.
env:
process.env.CI : false
Still its showing the same error.
Can anyone help me out of this situation please...
For me the solution was:
env:
CI: false
For me replacing npm run build with CI='' npm run build worked.
In my specific case, I was using Netlify, so all I did was set the ENV vars inside Netlify's panel:
"scripts": {
"start": "react-scripts start",
"build": "CI=false && react-scripts build", // Add CI=False here
"test": "react-scripts test",
"eject": "react-scripts eject"
},
In my case I was trying to deploy react app to Azure Static web pages via GitHub repo The env: CI: false
worked like a charm. Just a quick note. This was applied to the yaml defining the CI process in GitHub actions. The env element is with no indentation (at the same level as name: )
Follow the steps below and your problem would be solved:
...and have fun.
CI=true is needed in case you would like to process test during the deployment but it can be easily archived by setting a flag via package.json (in case in your dockerfile already set ENV CI=true you can remove it)
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "CI=true react-scripts test"
}
In Gitlab CI job in yml file, adding below script in my job worked for me.
script:
- CI=false yarn run build
you must fix the warnings you have in react, that's why it doesn't let you deploy
if you have to continue with the build and deploy from within GitLab CICD pipelines, you can include CI=false like so:
CI=false npm run build
or
unset CI
npm run build
Here is a complete gitlab_ci job sample:
build-dev:
environment: DEV
image: node:16
stage: build
script:
- npm install
- CI=false npm run build
only:
- /^devrelease-.*$/
tags:
- docker
or
build-dev:
environment: DEV
image: node:16
stage: build
script:
- unset CI
- npm install
- npm run build
only:
- /^devrelease-.*$/
tags:
- docker