Skip to content

Commit 703a52e

Browse files
committed
Added robot.txt to disallow indexing non production version of the website
1 parent 56ee86c commit 703a52e

File tree

5 files changed

+61
-1
lines changed

5 files changed

+61
-1
lines changed

.github/workflows/cd.deploy.stg.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ jobs:
6363
6464
env:
6565
CI: true
66+
STAGE: "staging"
6667
SSH_KNOWN_HOSTS: ${{ secrets.SSH_KNOWN_HOSTS }}
6768
SSH_ADDRESS_STG: ${{ secrets.SSH_ADDRESS_STG }}
6869
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}

.github/workflows/cd.deploy.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ jobs:
7070
7171
env:
7272
CI: true
73+
STAGE: "production"
7374
SSH_KNOWN_HOSTS: ${{ secrets.SSH_KNOWN_HOSTS }}
7475
SSH_ADDRESS_PRD: ${{ secrets.SSH_ADDRESS_PRD }}
7576
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}

web/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
"postcss-preset-env": "^7.0.1",
8383
"pug": "^3.0.0",
8484
"pug-loader": "^2.4.0",
85+
"robotstxt-webpack-plugin": "^7.0.0",
8586
"sass": "^1.30.0",
8687
"sass-loader": "^10.1.0",
8788
"sitemap": "^6.3.5",

web/webpack.config.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { fsConfig } from "@dzcode.io/utils/dist/config";
2+
import { Environment } from "@dzcode.io/utils/dist/config/environment";
23
import CssMinimizerPlugin from "css-minimizer-webpack-plugin";
34
import { readFileSync } from "fs";
45
import glob from "glob";
@@ -10,9 +11,14 @@ import { Configuration as WPC } from "webpack";
1011
import { BundleAnalyzerPlugin } from "webpack-bundle-analyzer";
1112
import { Configuration as WPDSC } from "webpack-dev-server";
1213

14+
const RobotstxtPlugin = require("robotstxt-webpack-plugin"); // eslint-disable-line @typescript-eslint/no-var-requires
15+
16+
// @TODO-ZM: to combine isProduction and isDevelopment and stage
17+
1318
// setting up project configurations and some env variables
1419
const ANALYZE = process.env.ANALYZE === "true";
1520
const isProduction = process.env.NODE_ENV === "production" || ANALYZE;
21+
const stage = (process.env.STAGE as Environment) || "production";
1622
const isDevelopment = process.env.NODE_ENV === "development" && !ANALYZE;
1723
const { web } = fsConfig("development");
1824
const distFolder = "./bundle";
@@ -157,6 +163,15 @@ export default {
157163
new BundleAnalyzerPlugin(),
158164
]
159165
: []),
166+
new RobotstxtPlugin({
167+
policy: [
168+
{
169+
userAgent: "*",
170+
allow: stage === "production" ? "/" : undefined,
171+
disallow: stage !== "production" ? "/" : undefined,
172+
},
173+
],
174+
}),
160175
...apps.reduce<WPC["plugins"][]>(
161176
(pV, app) => [...pV, ...require(`./src/apps/${app}/entry/webpack.plugins`)],
162177
[],

yarn.lock

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10624,6 +10624,18 @@ gcp-metadata@^4.2.0:
1062410624
gaxios "^4.0.0"
1062510625
json-bigint "^1.0.0"
1062610626

10627+
generate-robotstxt@^8.0.0:
10628+
version "8.0.3"
10629+
resolved "https://registry.yarnpkg.com/generate-robotstxt/-/generate-robotstxt-8.0.3.tgz#83384090406e760e9d02247412b2b704562c9b58"
10630+
integrity sha512-iD//oAVKcHOCz9M0IiT3pyUiF2uN1qvL3qaTA8RGLz7NU7l0XVwyzd3rN+tzhB657DNUgrygXt9w8+0zkTMFrg==
10631+
dependencies:
10632+
cosmiconfig "^6.0.0"
10633+
fs-extra "^9.0.0"
10634+
ip-regex "^4.1.0"
10635+
is-absolute-url "^3.0.3"
10636+
meow "^7.0.1"
10637+
resolve-from "^5.0.0"
10638+
1062710639
gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2:
1062810640
version "1.0.0-beta.2"
1062910641
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
@@ -14569,6 +14581,23 @@ memorystream@^0.3.1:
1456914581
resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
1457014582
integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI=
1457114583

14584+
meow@^7.0.1:
14585+
version "7.1.1"
14586+
resolved "https://registry.yarnpkg.com/meow/-/meow-7.1.1.tgz#7c01595e3d337fcb0ec4e8eed1666ea95903d306"
14587+
integrity sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==
14588+
dependencies:
14589+
"@types/minimist" "^1.2.0"
14590+
camelcase-keys "^6.2.2"
14591+
decamelize-keys "^1.1.0"
14592+
hard-rejection "^2.1.0"
14593+
minimist-options "4.1.0"
14594+
normalize-package-data "^2.5.0"
14595+
read-pkg-up "^7.0.1"
14596+
redent "^3.0.0"
14597+
trim-newlines "^3.0.0"
14598+
type-fest "^0.13.1"
14599+
yargs-parser "^18.1.3"
14600+
1457214601
meow@^8.0.0:
1457314602
version "8.1.2"
1457414603
resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897"
@@ -19338,6 +19367,14 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
1933819367
hash-base "^3.0.0"
1933919368
inherits "^2.0.1"
1934019369

19370+
robotstxt-webpack-plugin@^7.0.0:
19371+
version "7.0.0"
19372+
resolved "https://registry.yarnpkg.com/robotstxt-webpack-plugin/-/robotstxt-webpack-plugin-7.0.0.tgz#04b26c9e1cd2ad8ebc5e20918aeeb6ed5d56835e"
19373+
integrity sha512-Rk0moeHvqc3to6oE2z5lKW9GTJyQC/ysogNy465N2CT2Xvp2/DMPkix8idnpmBLfExrQjml18B8Z/HoAC/yPlg==
19374+
dependencies:
19375+
generate-robotstxt "^8.0.0"
19376+
webpack-sources "^1.4.3"
19377+
1934119378
router-ips@^1.0.0:
1934219379
version "1.0.0"
1934319380
resolved "https://registry.yarnpkg.com/router-ips/-/router-ips-1.0.0.tgz#44e00858ebebc0133d58e40b2cd8a1fbb04203f5"
@@ -21409,6 +21446,11 @@ type-fest@^0.12.0:
2140921446
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.12.0.tgz#f57a27ab81c68d136a51fd71467eff94157fa1ee"
2141021447
integrity sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==
2141121448

21449+
type-fest@^0.13.1:
21450+
version "0.13.1"
21451+
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934"
21452+
integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
21453+
2141221454
type-fest@^0.16.0:
2141321455
version "0.16.0"
2141421456
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860"
@@ -22782,7 +22824,7 @@ yargs-parser@^13.1.2:
2278222824
camelcase "^5.0.0"
2278322825
decamelize "^1.2.0"
2278422826

22785-
yargs-parser@^18.1.2:
22827+
yargs-parser@^18.1.2, yargs-parser@^18.1.3:
2278622828
version "18.1.3"
2278722829
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
2278822830
integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==

0 commit comments

Comments
 (0)