-
Notifications
You must be signed in to change notification settings - Fork 386
132 lines (112 loc) · 5.27 KB
/
repo-sync.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: Run Script
on:
workflow_dispatch:
inputs:
site_type:
description: 'Enter the type of site (b2c or b2b)'
required: true
version:
description: 'Enter the version to use'
required: true
npm_token:
description: 'Enter your npm token'
required: true
secret: true
jobs:
run_script:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Run script
run: |
# Define the directory
config_dir="scripts/install"
# Check if the config_dir directory exists
if [ ! -d "${config_dir}" ]; then
# If not, create it
mkdir -p "${config_dir}"
fi
# Get user input from workflow dispatch
site_type=${{ github.event.inputs.site_type }}
version=${{ github.event.inputs.version }}
npm_token=${{ github.event.inputs.npm_token }}
# Check if config.sh already exists in the config_dir directory
if [ -f "${config_dir}/config.sh" ]; then
echo "config.sh already exists in ${config_dir}. Removing it..."
rm "${config_dir}/config.sh"
fi
# Copy the content of config.default.sh to config.sh
cp "${config_dir}/config.default.sh" "${config_dir}/config.sh"
echo "config.sh has been created in ${config_dir}."
# Set the BASE_SITE value based on user input
if [ "${site_type}" == "b2c" ]; then
sed -i 's/^BASE_SITE=.*/BASE_SITE="electronics-spa"/' "${config_dir}/config.sh"
sed -i 's/^SSR_APP_NAME=.*/SSR_APP_NAME="spartacusstore"/' "${config_dir}/config.sh"
elif [ "${site_type}" == "b2b" ]; then
sed -i 's/^BASE_SITE=.*/BASE_SITE="powertools-spa"/' "${config_dir}/config.sh"
sed -i 's/^SSR_APP_NAME=.*/SSR_APP_NAME="b2bspastore"/' "${config_dir}/config.sh"
else
echo "Invalid site type. BASE_SITE and SSR_APP_NAME not set."
fi
# Set the SPARTACUS_VERSION value based on user input
sed -i "s/^SPARTACUS_VERSION=.*/SPARTACUS_VERSION='${version}'/" "${config_dir}/config.sh"
# Set the NPM_TOKEN value based on user input
sed -i "s/^NPM_TOKEN=.*/NPM_TOKEN='${npm_token}'/" "${config_dir}/config.sh"
# Set the NPM_URL value
sed -i "s|^NPM_URL=.*|NPM_URL='https://73554900100900004337.dev.npmsrv.base.repositories.cloud.sap/'|" "${config_dir}/config.sh"
# Navigate to the directory and run the script
cd "${config_dir}" && bash "./run.sh" install_npm
# Define the file location
file_location="../../../spartacus-${version}/apps/spartacusstore/src/app/spartacus/spartacus-configuration.module.ts"
# Check if the file exists
if [ -f "${file_location}" ]; then
# Comment out baseUrl in spartacus configuration
sed -i 's/baseUrl/\/\/baseUrl/1' "${file_location}"
echo "Modified ${file_location}."
else
echo "${file_location} does not exist."
fi
- name: Set Git user
run: |
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
- name: Commit changes
run: |
git clone https://${{secrets.GH_TEMPORARY_TOKEN}}@github.com/SAP-samples/cloud-commerce-sample-setup.git
if [ $? -eq 0 ]; then
echo "Repository cloned successfully."
else
echo "Error: Failed to clone the repository."
fi
# Navigate to the cloned repository
cd cloud-commerce-sample-setup
# Get the current date and time
timestamp=$(date +%Y%m%d%H%M%S)
# Create a new branch with a unique name
branch_name="new_branch_$timestamp"
git checkout -b $branch_name
# Replace the content inside js-storefront/spartacusstore with the content from ./../../spartacus-${{ github.event.inputs.version }}/apps/spartacusstore
rm -rf js-storefront/spartacusstore/*
cp -r ./../../spartacus-${{ github.event.inputs.version }}/apps/spartacusstore/* js-storefront/spartacusstore/
# Add the changes to the new branch
git add .
# Commit the changes
git commit -m "Updated content of js-storefront/spartacusstore"
# Push the changes to the new branch
git push -u https://${{secrets.GH_TEMPORARY_TOKEN}}@github.com/SAP-samples/cloud-commerce-sample-setup.git
# Echo the branch name so it can be used in later steps
echo "branch_name=$branch_name" >> $GITHUB_ENV
- name: Create Pull Request
run: |
curl \
-X POST \
-H "Authorization: token ${{ secrets.GH_TEMPORARY_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/SAP-samples/cloud-commerce-sample-setup/pulls \
-d '{
"title": "Update js-storefront/spartacusstore content",
"body": "This PR updates the content of js-storefront/spartacusstore.",
"head": "'"$branch_name"'",
"base": "main"
}'