Added Files

This commit is contained in:
Joachim Hummel 2020-07-22 14:13:09 +02:00
parent 200cc84109
commit ff1789b3e3
12 changed files with 156 additions and 0 deletions

18
appspec.yml Executable file
View File

@ -0,0 +1,18 @@
version: 0.0
os: linux
files:
- source: /
destination: /web/
hooks:
AfterInstall:
- location: scripts/mkdir.sh
timeout: 300
runas: root
ApplicationStart:
- location: scripts/start_flask.sh
timeout: 300
runas: root
ApplicationStop:
- location: scripts/stop_flask1.sh
timeout: 300
runas: root

24
buildspec.yml Executable file
View File

@ -0,0 +1,24 @@
version: 0.2
phases:
install:
commands:
- python -m pip install Flask
build:
commands:
- echo Build started on `date`
- echo Compiling the Python code...
- python test_app.py
post_build:
commands:
- echo Build completed on `date`
artifacts:
files:
- web.py
- appspec.yml
- templates/layout.html
- templates/test.html
- scripts/mkdir.sh
- scripts/start_flask.sh
- scripts/stop_flask1.sh
- scripts/stop_flask.py

1
requirements.txt Executable file
View File

@ -0,0 +1 @@
Flask

5
scripts/mkdir.sh Executable file
View File

@ -0,0 +1,5 @@
mkdir -p /web
curl -O https://bootstrap.pypa.io/get-pip.py
python get-pip.py --user
python -m pip install Flask
#sdssdsds

1
scripts/start_flask.sh Executable file
View File

@ -0,0 +1 @@
python /web/web.py > /dev/null 2>&1 &

3
scripts/stop_flask.py Executable file
View File

@ -0,0 +1,3 @@
import requests
requests.post("http://127.0.0.1/shutdown")

6
scripts/stop_flask.sh Executable file
View File

@ -0,0 +1,6 @@
#!/usr/bin/python
import requests
requests.post("http://127.0.0.1/shutdown")

1
scripts/stop_flask1.sh Executable file
View File

@ -0,0 +1 @@
python /web/scripts/stop_flask.py

25
templates/layout.html Executable file
View File

@ -0,0 +1,25 @@
<html>
<head>
<title>AWS CodeBuild-Jenkins-CodeDeploy</title>
<style>
body {
text-align: center;
}
h1 {
font-weight: bold;
color: #ff9900;
font-size: 2.5em;
}
</style>
</head>
<body>
{% block body %}{% endblock %}
</body>
</html>

13
templates/test.html Executable file
View File

@ -0,0 +1,13 @@
{% extends "layout.html" %}
{% block body %}
<div class="block1">
<h1 style="text-align: center;">Congratulations!!</h1>
<h1>You have successfully deployed your web application using automated CI/CD.</h1>
<BR>
<h2 style="text-align: center;">Jenkins - AWS CodeBuild - AWS CodeDeploy</h2>
&nbsp;<img style="display: block; margin-left: auto; margin-right: auto;" src="https://a0.awsstatic.com/libra-css/images/logos/aws_logo_smile_1200x630.png"
width="527" height="277" />
</div>
<p>{% endblock %}</p>

27
test_app.py Normal file
View File

@ -0,0 +1,27 @@
# Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
from web import myapp
import unittest
# python -m unittest test_app
class TestMyApp(unittest.TestCase):
def setUp(self):
self.app = myapp.test_client()
def test_main(self):
rv = self.app.get('/')
assert rv.status == '200 OK'
assert b'Congratulations' in rv.data
#assert False
def test_404(self):
rv = self.app.get('/other')
self.assertEqual(rv.status, '404 NOT FOUND')
if __name__ == '__main__':
unittest.main()

32
web.py Normal file
View File

@ -0,0 +1,32 @@
# Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
from flask import Flask, flash, redirect, render_template, request, session, abort
from random import randint
def shutdown_server():
func = request.environ.get('werkzeug.server.shutdown')
if func is None:
raise RuntimeError('Not running with the Werkzeug Server')
func()
myapp = Flask(__name__)
@myapp.route('/shutdown', methods=['POST'])
def shutdown():
shutdown_server()
return 'Server shutting down...'
@myapp.route("/")
def hello():
# return name
return render_template(
'test.html', **locals())
if __name__ == "__main__":
myapp.run(host='0.0.0.0', port=80)