@docupace/pipeline 1.0.78 → 1.0.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docupace/pipeline",
3
- "version": "1.0.78",
3
+ "version": "1.0.80",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,14 +1,14 @@
1
+ import axios from 'axios';
1
2
  import fs from 'fs';
2
- import path from 'path';
3
3
  import yaml from 'js-yaml';
4
- import { $ } from 'zx';
5
4
  import lodash from 'lodash';
5
+ import path from 'path';
6
+ import semver from 'semver';
7
+ import { $ } from 'zx';
6
8
  import { appInfo, environmentConfig, getRepUrl } from './config.js';
7
9
  import { copy2 } from './copy.js';
8
- import axios from 'axios';
9
- import { deployConnect, deployCore } from './jenkins.js';
10
10
  import { gitDescribeToSemver } from './git-to-semver.js';
11
- import semver from 'semver';
11
+ import { deployConnect, deployCore } from './jenkins.js';
12
12
 
13
13
  /**
14
14
  * Clone the repository, read the YAML file, and return the parsed data and file paths.
@@ -367,6 +367,35 @@ export async function deployAppWithTag(application, env, site, deployTag) {
367
367
  console.log(`Using deployment tag: ${deployTag}`);
368
368
  const appDetails = appInfo[application];
369
369
 
370
+ const repoPath = await cloneEnvRepository(env);
371
+ const { deployConfigFilePath: valuesFilePath } = getConfigPath(
372
+ application,
373
+ env,
374
+ site,
375
+ 'values',
376
+ );
377
+ const { deployConfigFilePath: appFilePath } = getConfigPath(
378
+ application,
379
+ env,
380
+ site,
381
+ 'app',
382
+ );
383
+
384
+ if (!fs.existsSync(valuesFilePath) || !fs.existsSync(appFilePath)) {
385
+ const missingFiles = [];
386
+ if (!fs.existsSync(valuesFilePath))
387
+ missingFiles.push(`${application}.values.yaml`);
388
+ if (!fs.existsSync(appFilePath))
389
+ missingFiles.push(`${application}.app.yaml`);
390
+ console.log(
391
+ `⚠️ Skipping deployment to ${site}: config file(s) missing: ${missingFiles.join(', ')}`,
392
+ );
393
+ console.log(
394
+ ` This site may not be configured for ${application} application`,
395
+ );
396
+ return;
397
+ }
398
+
370
399
  if (env !== 'dev') {
371
400
  await copy2(
372
401
  appDetails.repositoryName,
@@ -377,8 +406,12 @@ export async function deployAppWithTag(application, env, site, deployTag) {
377
406
  );
378
407
  }
379
408
 
380
- const { repoPath, deployConfigFilePath, deployConfig } =
381
- await cloneAndReadDeployConfig(application, env, site);
409
+ const { deployConfig, deployConfigFilePath } = await readDeployConfig(
410
+ application,
411
+ env,
412
+ site,
413
+ 'values',
414
+ );
382
415
  const updatedConfigData = setTag(deployConfig, deployTag);
383
416
 
384
417
  const {
@@ -3,6 +3,7 @@ set -e
3
3
 
4
4
  PROJECT=$1
5
5
  export ROLE_NAME="${2:-atlassian-bitbucket-pipelines-runner-eks-role}"
6
+ CLUSTER_NAME="${3:-}"
6
7
 
7
8
  if [[ -z "$PROJECT" ]]; then
8
9
  echo "Error: Project name is required."
@@ -10,7 +11,9 @@ if [[ -z "$PROJECT" ]]; then
10
11
  exit 1
11
12
  fi
12
13
 
13
- if [ "$CURRENT_ENVIRONMENT" == "prd" ]; then
14
+ if [ -n "$CLUSTER_NAME" ]; then
15
+ export EKS_CLUSTER_NAME="$CLUSTER_NAME"
16
+ elif [ "$CURRENT_ENVIRONMENT" == "prd" ]; then
14
17
  export EKS_CLUSTER_NAME="connect-next-prd-eks-cluster"
15
18
  CURRENT_ENVIRONMENT="prod"
16
19
  elif [ "$CURRENT_ENVIRONMENT" == "stg" ]; then
@@ -21,6 +24,7 @@ else
21
24
  fi
22
25
 
23
26
  echo "Using EKS cluster: $EKS_CLUSTER_NAME"
27
+ echo "Current environment: $CURRENT_ENVIRONMENT"
24
28
 
25
29
  export SESSION_NAME="EKSAdminSession"
26
30
  export ROLE_ARN="arn:aws:iam::$(aws sts get-caller-identity | jq -r '.Account'):role/$ROLE_NAME"
package/terraform/init.sh CHANGED
@@ -5,6 +5,9 @@ PROJECT=$1
5
5
  CURRENT_ENVIRONMENT=$2
6
6
  export ROLE_NAME="${3:-atlassian-bitbucket-pipelines-runner-eks-role}"
7
7
 
8
+ AWS_REGION="${4:-us-west-2}"
9
+ CLUSTER_NAME="${5:-}"
10
+
8
11
  if [[ -z "$PROJECT" ]]; then
9
12
  echo "Error: Project name is required."
10
13
  echo "Usage: $0 <project-name> $1 <environment>"
@@ -17,7 +20,9 @@ if [[ -z "$CURRENT_ENVIRONMENT" ]]; then
17
20
  exit 1
18
21
  fi
19
22
 
20
- if [ "$CURRENT_ENVIRONMENT" == "prd" ]; then
23
+ if [ -n "$CLUSTER_NAME" ]; then
24
+ export EKS_CLUSTER_NAME="$CLUSTER_NAME"
25
+ elif [ "$CURRENT_ENVIRONMENT" == "prd" ]; then
21
26
  export EKS_CLUSTER_NAME="connect-next-prd-eks-cluster"
22
27
  CURRENT_ENVIRONMENT="prod"
23
28
  elif [ "$CURRENT_ENVIRONMENT" == "stg" ]; then
@@ -28,6 +33,7 @@ else
28
33
  fi
29
34
 
30
35
  echo "Using EKS cluster: $EKS_CLUSTER_NAME"
36
+ echo "Current environment: $CURRENT_ENVIRONMENT"
31
37
 
32
38
  export SESSION_NAME="EKSAdminSession"
33
39
  export ROLE_ARN="arn:aws:iam::$(aws sts get-caller-identity | jq -r '.Account'):role/$ROLE_NAME"
@@ -57,16 +63,16 @@ if [[ "$PROJECT" == "s3" ]]; then
57
63
  -input=false \
58
64
  -reconfigure \
59
65
  -backend=true \
60
- -backend-config=./env/${CURRENT_ENVIRONMENT}/us-west-2/backend.tfvars \
61
- -backend-config="key=us-west-2/${PROJECT}/${SITE_NAME}/${CURRENT_ENVIRONMENT}/terraform.tfstate"
66
+ -backend-config=./env/${CURRENT_ENVIRONMENT}/${AWS_REGION}/backend.tfvars \
67
+ -backend-config="key=${AWS_REGION}/${PROJECT}/${SITE_NAME}/${CURRENT_ENVIRONMENT}/terraform.tfstate"
62
68
  elif [[ "$PROJECT" == "idp" ]]; then
63
69
  info
64
70
  terraform init \
65
71
  -input=false \
66
72
  -reconfigure \
67
73
  -backend=true \
68
- -backend-config=./env/${CURRENT_ENVIRONMENT}/us-west-2/backend.tfvars \
69
- -backend-config="key=us-west-2/${PROJECT}/${SITE_NAME}/${CURRENT_ENVIRONMENT}/terraform.tfstate"
74
+ -backend-config=./env/${CURRENT_ENVIRONMENT}/${AWS_REGION}/backend.tfvars \
75
+ -backend-config="key=${AWS_REGION}/${PROJECT}/${SITE_NAME}/${CURRENT_ENVIRONMENT}/terraform.tfstate"
70
76
  else
71
- terraform init -backend-config=./env/${CURRENT_ENVIRONMENT}/us-west-2/backend.tfvars --reconfigure
77
+ terraform init -backend-config=./env/${CURRENT_ENVIRONMENT}/${AWS_REGION}/backend.tfvars --reconfigure
72
78
  fi
package/terraform/plan.sh CHANGED
@@ -5,6 +5,9 @@ PROJECT=$1
5
5
  CURRENT_ENVIRONMENT=$2
6
6
  export ROLE_NAME="${3:-atlassian-bitbucket-pipelines-runner-eks-role}"
7
7
 
8
+ AWS_REGION="${4:-us-west-2}"
9
+ CLUSTER_NAME="${5:-}"
10
+
8
11
  if [[ -z "$PROJECT" ]]; then
9
12
  echo "Error: Project name is required."
10
13
  echo "Usage: $0 <project-name> $1 <environment>"
@@ -17,7 +20,9 @@ if [[ -z "$CURRENT_ENVIRONMENT" ]]; then
17
20
  exit 1
18
21
  fi
19
22
 
20
- if [ "$CURRENT_ENVIRONMENT" == "prd" ]; then
23
+ if [ -n "$CLUSTER_NAME" ]; then
24
+ export EKS_CLUSTER_NAME="$CLUSTER_NAME"
25
+ elif [ "$CURRENT_ENVIRONMENT" == "prd" ]; then
21
26
  export EKS_CLUSTER_NAME="connect-next-prd-eks-cluster"
22
27
  CURRENT_ENVIRONMENT="prod"
23
28
  elif [ "$CURRENT_ENVIRONMENT" == "stg" ]; then
@@ -28,6 +33,7 @@ else
28
33
  fi
29
34
 
30
35
  echo "Using EKS cluster: $EKS_CLUSTER_NAME"
36
+ echo "Current environment: $CURRENT_ENVIRONMENT"
31
37
 
32
38
  export SESSION_NAME="EKSAdminSession"
33
39
  export ROLE_ARN="arn:aws:iam::$(aws sts get-caller-identity | jq -r '.Account'):role/$ROLE_NAME"
@@ -42,21 +48,21 @@ cd "$BITBUCKET_CLONE_DIR/${PROJECT}"
42
48
 
43
49
  if [[ "$PROJECT" == "bb-build-agent-shell" ]]; then
44
50
  if [[ "$CURRENT_ENVIRONMENT" == "dev" ]]; then
45
- echo "$dev_build_agent_configuration" | base64 -d >./env/${CURRENT_ENVIRONMENT}/us-west-2/build_agent_configuration.tfvars.json
51
+ echo "$dev_build_agent_configuration" | base64 -d >./env/${CURRENT_ENVIRONMENT}/${AWS_REGION}/build_agent_configuration.tfvars.json
46
52
  elif [[ "$CURRENT_ENVIRONMENT" == "qa" ]]; then
47
- echo "$qa_build_agent_configuration" | base64 -d >./env/${CURRENT_ENVIRONMENT}/us-west-2/build_agent_configuration.tfvars.json
53
+ echo "$qa_build_agent_configuration" | base64 -d >./env/${CURRENT_ENVIRONMENT}/${AWS_REGION}/build_agent_configuration.tfvars.json
48
54
  fi
49
55
 
50
- terraform plan -var-file="./env/${CURRENT_ENVIRONMENT}/us-west-2/terraform.tfvars" \
51
- -var-file="./env/${CURRENT_ENVIRONMENT}/us-west-2/build_agent_configuration.tfvars.json" \
56
+ terraform plan -var-file="./env/${CURRENT_ENVIRONMENT}/${AWS_REGION}/terraform.tfvars" \
57
+ -var-file="./env/${CURRENT_ENVIRONMENT}/${AWS_REGION}/build_agent_configuration.tfvars.json" \
52
58
  -out .tfplan
53
59
  elif [[ "$PROJECT" == "s3" ]]; then
54
- terraform plan -var-file="./env/${CURRENT_ENVIRONMENT}/us-west-2/terraform.tfvars" \
60
+ terraform plan -var-file="./env/${CURRENT_ENVIRONMENT}/${AWS_REGION}/terraform.tfvars" \
55
61
  -var="site=${SITE_NAME}" \
56
62
  -var="env=${CURRENT_ENVIRONMENT}" \
57
63
  -out .tfplan
58
64
  elif [[ "$PROJECT" == "idp" ]]; then
59
- terraform plan -var-file="./env/${CURRENT_ENVIRONMENT}/us-west-2/terraform.tfvars" \
65
+ terraform plan -var-file="./env/${CURRENT_ENVIRONMENT}/${AWS_REGION}/terraform.tfvars" \
60
66
  -var="site=${SITE_NAME}" \
61
67
  -var="env=${CURRENT_ENVIRONMENT}" \
62
68
  -var="docupace_domain=${DOCUPACE_DOMAIN}" \
@@ -72,5 +78,5 @@ elif [[ "$PROJECT" == "idp" ]]; then
72
78
  -var="deploy_azuread_app=${DEPLOY_AZUREAD_APP}" \
73
79
  -out .tfplan
74
80
  else
75
- terraform plan -var-file="./env/${CURRENT_ENVIRONMENT}/us-west-2/terraform.tfvars" -out .tfplan
81
+ terraform plan -var-file="./env/${CURRENT_ENVIRONMENT}/${AWS_REGION}/terraform.tfvars" -out .tfplan
76
82
  fi