Skip to content
GitLab
    • Explore Projects Groups Snippets
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • C create-react-app
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,547
    • Issues 1,547
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 417
    • Merge requests 417
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Meta
  • create-react-app
  • Merge requests
  • !768

Azure / Kudu Continuous Deployment Integration

  • Review changes

  • Download
  • Email patches
  • Plain diff
Closed Administrator requested to merge github/fork/erikschlegel/azure-deploy into master 8 years ago
  • Overview 1
  • Commits 5
  • Pipelines 0
  • Changes 4

Created by: erikschlegel

Adding the kudu triggered deployment scripts which uses this library to bundle and build reactjs web applications on azure.

Compare
  • master (base)

and
  • latest version
    52f9c676
    5 commits, 2 years ago

4 files
+ 178
- 0

    Preferences

    File browser
    Compare changes
ta‎sks‎
azure-d‎eploy.sh‎ +148 -0
temp‎late‎
Web.c‎onfig‎ +24 -0
.depl‎oyment‎ +2 -0
CHANGE‎LOG.md‎ +4 -0
tasks/azure-deploy.sh 0 → 100644
+ 148
- 0
  • View file @ 52f9c676

 
#!/bin/bash
 
 
# ----------------------
 
# KUDU Deployment Script
 
# Version: 0.2.2
 
# ----------------------
 
 
# Helpers
 
# -------
 
 
exitWithMessageOnError () {
 
if [ ! $? -eq 0 ]; then
 
echo "An error has occurred during web site deployment."
 
echo $1
 
exit 1
 
fi
 
}
 
 
# Prerequisites
 
# -------------
 
 
# Verify node.js installed
 
hash node 2>/dev/null
 
exitWithMessageOnError "Missing node.js executable, please install node.js, if already installed make sure it can be reached from current environment."
 
 
# Setup
 
# -----
 
 
SCRIPT_DIR="${BASH_SOURCE[0]%\\*}"
 
SCRIPT_DIR="${SCRIPT_DIR%/*}"
 
ARTIFACTS=$SCRIPT_DIR/../artifacts
 
KUDU_SYNC_CMD=${KUDU_SYNC_CMD//\"}
 
 
 
if [[ ! -n "$DEPLOYMENT_SOURCE" ]]; then
 
DEPLOYMENT_SOURCE=$SCRIPT_DIR
 
fi
 
 
if [[ ! -n "$NEXT_MANIFEST_PATH" ]]; then
 
NEXT_MANIFEST_PATH=$ARTIFACTS/manifest
 
 
if [[ ! -n "$PREVIOUS_MANIFEST_PATH" ]]; then
 
PREVIOUS_MANIFEST_PATH=$NEXT_MANIFEST_PATH
 
fi
 
fi
 
 
if [[ ! -n "$DEPLOYMENT_TARGET" ]]; then
 
DEPLOYMENT_TARGET=$ARTIFACTS/wwwroot
 
else
 
KUDU_SERVICE=true
 
fi
 
 
WEB_CONFIG=$DEPLOYMENT_SOURCE/template/Web.config
 
 
if [[ ! -n "$KUDU_SYNC_CMD" ]]; then
 
# Install kudu sync
 
echo Installing Kudu Sync
 
npm install kudusync -g --silent
 
exitWithMessageOnError "npm failed"
 
 
if [[ ! -n "$KUDU_SERVICE" ]]; then
 
# In case we are running locally this is the correct location of kuduSync
 
KUDU_SYNC_CMD=kuduSync
 
else
 
# In case we are running on kudu service this is the correct location of kuduSync
 
KUDU_SYNC_CMD=$APPDATA/npm/node_modules/kuduSync/bin/kuduSync
 
fi
 
fi
 
 
# Node Helpers
 
# ------------
 
 
selectNodeVersion () {
 
echo Selecting Node Version
 
if [[ -n "$KUDU_SELECT_NODE_VERSION_CMD" ]]; then
 
SELECT_NODE_VERSION="$KUDU_SELECT_NODE_VERSION_CMD \"$DEPLOYMENT_SOURCE\" \"$DEPLOYMENT_TARGET\" \"$DEPLOYMENT_TEMP\""
 
eval $SELECT_NODE_VERSION
 
exitWithMessageOnError "select node version failed"
 
 
if [[ -e "$DEPLOYMENT_TEMP/__nodeVersion.tmp" ]]; then
 
NODE_EXE=`cat "$DEPLOYMENT_TEMP/__nodeVersion.tmp"`
 
exitWithMessageOnError "getting node version failed"
 
fi
 
 
if [[ -e "$DEPLOYMENT_TEMP/.tmp" ]]; then
 
NPM_JS_PATH=`cat "$DEPLOYMENT_TEMP/__npmVersion.tmp"`
 
exitWithMessageOnError "getting npm version failed"
 
fi
 
 
if [[ ! -n "$NODE_EXE" ]]; then
 
NODE_EXE=node
 
fi
 
 
NPM_CMD="\"$NODE_EXE\" \"$NPM_JS_PATH\""
 
else
 
NPM_CMD=npm
 
NODE_EXE=node
 
fi
 
}
 
 
##################################################################################################################################
 
# Deployment
 
# ----------
 
 
echo Handling custom node.js deployment.
 
 
touch server.js
 
 
selectNodeVersion
 
 
if [ -e "$DEPLOYMENT_SOURCE/package.json" ]; then
 
echo Installing Create React App Package
 
eval $NPM_CMD install -g create-react-app
 
exitWithMessageOnError "create react app install failed"
 
 
echo Installing NPM Packages
 
eval $NPM_CMD install
 
exitWithMessageOnError "npm failed"
 
 
echo Building React App
 
eval $NPM_CMD run build
 
exitWithMessageOnError "react build failed"
 
 
cd - > /dev/null
 
fi
 
 
if [ -e "$WEB_CONFIG" ]; then
 
echo Copying $WEB_CONFIG over to the build folder
 
cp $WEB_CONFIG build/
 
exitWithMessageOnError "Unable to copy $WEB_CONFIG over to build"
 
fi
 
 
if [[ "$IN_PLACE_DEPLOYMENT" -ne "1" ]]; then
 
echo Syncing Files
 
"$KUDU_SYNC_CMD" -v 50 -f "$DEPLOYMENT_SOURCE/build" -t "$DEPLOYMENT_TARGET" -n "$NEXT_MANIFEST_PATH" -p "$PREVIOUS_MANIFEST_PATH" -i ".git;.hg;.deployment;deploy.sh"
 
exitWithMessageOnError "Kudu Sync failed"
 
fi
 
 
##################################################################################################################################
 
# Post deployment stub
 
if [[ -n "$POST_DEPLOYMENT_ACTION" ]]; then
 
POST_DEPLOYMENT_ACTION=${POST_DEPLOYMENT_ACTION//\"}
 
cd "${POST_DEPLOYMENT_ACTION_DIR%\\*}"
 
"$POST_DEPLOYMENT_ACTION"
 
exitWithMessageOnError "post deployment action failed"
 
fi
 
 
echo "Finished successfully."
template/Web.config 0 → 100644
+ 24
- 0
  • View file @ 52f9c676

 
<?xml version="1.0" encoding="utf-8"?>
 
<!--
 
This configuration file is required if iisnode is used to run node processes behind
 
IIS or IIS Express. For more information, visit:
 
 
https://github.com/tjanczuk/iisnode/blob/master/src/samples/configuration/web.config
 
-->
 
 
<configuration>
 
<system.webServer>
 
<handlers>
 
<clear />
 
<add
 
name="StaticFile"
 
path="*" verb="*"
 
modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule"
 
resourceType="Either"
 
requireAccess="Read" />
 
</handlers>
 
<staticContent>
 
<mimeMap fileExtension=".*" mimeType="application/octet-stream" />
 
</staticContent>
 
</system.webServer>
 
</configuration>
.deployment 0 → 100644
+ 2
- 0
  • View file @ 52f9c676

 
[config]
 
command = bash ./tasks/azure-deploy.sh
CHANGELOG.md
+ 4
- 0
  • View file @ 52f9c676


 
### Azure Deployment Integration
 
 
* Added Azure / Kudu deployment scripts which is triggered by kudus continuous deployment Github webhook.
 
## 0.6.0 (September 25, 2016)
## 0.6.0 (September 25, 2016)
### Build Dependency (`react-scripts`)
### Build Dependency (`react-scripts`)
0 Assignees
None
Assign to
0 Reviewers
None
Request review from
Labels
1
CLA Signed
1
CLA Signed
    Assign labels
  • Manage project labels

Milestone
No milestone
None
None
Time tracking
No estimate or time spent
Lock merge request
Unlocked
0
0 participants
Reference: facebook/create-react-app!131
Source branch: github/fork/erikschlegel/azure-deploy

Menu

Explore Projects Groups Snippets