Skip to content

Commit

Permalink
Add custom deploy script for azure
Browse files Browse the repository at this point in the history
  • Loading branch information
MikaKattainen committed Aug 24, 2021
1 parent 6d91750 commit e487564
Show file tree
Hide file tree
Showing 7 changed files with 462 additions and 378 deletions.
11 changes: 10 additions & 1 deletion .babelrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
{
"presets": ["@babel/preset-env"]
"presets": [
[
"@babel/preset-env",
{
"useBuiltIns": "usage",
"corejs": 3,
"targets": "> 0.25%, not dead"
}
]
]
}
2 changes: 2 additions & 0 deletions .deployment
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[config]
command = bash deploy.sh
5 changes: 4 additions & 1 deletion .github/workflows/master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,10 @@ jobs:
- name: copy web.config and node_modules to dist
run: |
cp web.config dist/web.config
cp -r node_modules dist/node_modules
cp package.json dist/package.json
cp yarn.lock dist/yarn.lock
cp .deployment dist/.deployment
cp deploy.sh dist/deploy.sh
- name: 'Deploy to Azure WebApp'
uses: azure/webapps-deploy@v2
with:
Expand Down
101 changes: 101 additions & 0 deletions deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
#!/bin/bash

# ----------------------
# KUDU Deployment Script
# Version: 1.0.17
# ----------------------

# 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

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 () {
# This is ugly, and will break installs for any other node version:
echo "Adding the path to node 14 bin directory to beginning of PATH"
PATH=/opt/nodejs/14/bin/:$PATH
}

##################################################################################################################################
# Deployment
# ----------

echo Handling node.js deployment.

# 1. KuduSync
if [[ "$IN_PLACE_DEPLOYMENT" -ne "1" ]]; then
"$KUDU_SYNC_CMD" -v 50 -f "$DEPLOYMENT_SOURCE" -t "$DEPLOYMENT_TARGET" -n "$NEXT_MANIFEST_PATH" -p "$PREVIOUS_MANIFEST_PATH" -i ".git;.hg;.deployment;deploy.sh"
exitWithMessageOnError "Kudu Sync failed"
fi

# 2. Select node version
selectNodeVersion

# 3. Install npm packages
if [ -e "$DEPLOYMENT_TARGET/package.json" ]; then
cd "$DEPLOYMENT_TARGET"
echo "Running yarn install"
yarn install
exitWithMessageOnError "yarn failed"
cd - > /dev/null
fi

##################################################################################################################################
echo "Finished successfully."
4 changes: 4 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,12 @@
"version": "0.1.0",
"description": "Partio-ohjelmasovelluksen backend",
"main": "index.js",
"engines": {
"node": "14.x"
},
"scripts": {
"start": "node dist/index.js",
"start:prod": "PORT=8080 node index.js",
"dev": "nodemon --exec babel-node src/index.js",
"ngrok": "ngrok http -subdomain=pos-api-dev 3001",
"build": "rimraf dist && babel src --out-dir dist",
Expand Down
11 changes: 5 additions & 6 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ const main = async () => {
})
)

app.get('/logout', function(req, res) {
app.get('/logout', function (req, res) {
return strategy.logout(req, (err, uri) => {
req.logout()
return res.redirect(uri)
Expand Down Expand Up @@ -265,7 +265,7 @@ const main = async () => {
// Get user ids from req.body
const userIds = req.body.userIds
// Mark the task as completed for all the users
const promises = userIds.map(user_guid =>
const promises = userIds.map((user_guid) =>
Promise.resolve(
postTaskEntry({
user_guid,
Expand All @@ -287,9 +287,8 @@ const main = async () => {
app.use(notifications)

app.use('/', router)
app.listen(process.env.PORT || 3001, () =>
console.log('listening on port 3001')
)
const port = process.env.PORT || 3001
app.listen(port, () => console.log(`listening on port ${port}`))
}

main().catch(error => console.error(error))
main().catch((error) => console.error(error))
Loading

0 comments on commit e487564

Please sign in to comment.