diff --git a/LearningDevOps/README.md b/LearningDevOps/README.md new file mode 100644 index 000000000..0a72f69f7 --- /dev/null +++ b/LearningDevOps/README.md @@ -0,0 +1,4 @@ +# LearningDevOps +ALL learning of devops will be right here. + +hey rahul \ No newline at end of file diff --git a/LearningDevOps/azure-pipelines.yml b/LearningDevOps/azure-pipelines.yml new file mode 100644 index 000000000..772211d63 --- /dev/null +++ b/LearningDevOps/azure-pipelines.yml @@ -0,0 +1,50 @@ +# Starter pipeline +# Start with a minimal pipeline that you can customize to build and deploy your code. +# Add steps that build, run tests, deploy, and more: +# https://aka.ms/yaml + +trigger: +- main + +pool: + vmImage: ubuntu-latest + +strategy: + matrix: + python310: + python.version: '3.10' + python311: + python.version: '3.11' + python312: + python.version: '3.12' + +steps: +- task: UsePythonVersion@0 + inputs: + versionSpec: '$(python.version)' + displayName: 'use python $(python.version)' + +- script: | + python -m pip install --upgrade pip + pip install -r requirements.txt + displayName: 'Install Dependencies' + +- task: ArchiveFiles@2 + displayName: 'Archive Files' + inputs: + rootFolderOrFile: $(System.DefaultWorkingDirectory) + includeRootFolder: false + archiveType: zip + archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId)-$(python.version).zip + replaceExistingArchive: true + +- task: PublishBuildArtifacts@1 + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)' + ArtifactName: 'drop' + publishLocation: 'Container' + +- script: | + pip install pytest pytest-azurepipelines + pytest + displayName: 'pytest' diff --git a/LearningDevOps/note.txt b/LearningDevOps/note.txt new file mode 100644 index 000000000..c069890d1 --- /dev/null +++ b/LearningDevOps/note.txt @@ -0,0 +1,17 @@ +commit ca93958802b25974073c523bb3867731981d0b3f (HEAD -> main, origin/main, origin/dev, origin/HEAD, test, dev) +Author: Abhishek +Date: Tue May 19 05:59:41 2026 +0000 + + Made changes in note.txt file + +commit 72c4f94a449759d6d7e25e7b8f33e8738faaeace +Author: Abhishek +Date: Tue May 19 05:52:37 2026 +0000 + + Setting up Platform + +commit 3ec51231c91012ae805632d87be697d25fd64b41 +Author: Abhishek +Date: Fri May 15 01:17:14 2026 +0530 + + Initial commit diff --git a/README.md b/README.md index 068a76fd5..b707227cb 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +<<<<<<< HEAD +# tery +======= # Python/Flask Tutorial for Visual Studio Code * This sample contains the completed program from the tutorial, make sure to visit the link: [Using Flask in Visual Studio Code](https://code.visualstudio.com/docs/python/tutorial-flask). Intermediate steps are not included. @@ -30,3 +33,4 @@ When you submit a pull request, a CLA-bot automatically determines whether you n * This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). * For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or * Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. +>>>>>>> 90f581677ea56f32164f77c0687cae72b53f505e diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 000000000..e36976f09 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,84 @@ +trigger: +- main + +variables: + # Azure Resource Manager connection created during pipeline creation + azureServiceConnectionId: '01fcb7bf-3c1d-44ee-9116-c74c89bb26db' + + # Web app name + webAppName: 'abhiappPY' + + # Agent VM image name + vmImageName: 'ubuntu-latest' + + # Environment name + environmentName: 'abhiappPY' + + + # Project root folder. Point to the folder containing manage.py file. + projectRoot: $(System.DefaultWorkingDirectory) + + pythonVersion: '3.11' + +stages: +- stage: Build + displayName: Build stage + jobs: + - job: BuildJob + pool: + vmImage: $(vmImageName) + steps: + - task: UsePythonVersion@0 + inputs: + versionSpec: '$(pythonVersion)' + displayName: 'Use Python $(pythonVersion)' + + - script: | + python -m venv antenv + source antenv/bin/activate + python -m pip install --upgrade pip + pip install setuptools + pip install -r requirements.txt + workingDirectory: $(projectRoot) + displayName: "Install requirements" + + - task: ArchiveFiles@2 + displayName: 'Archive files' + inputs: + rootFolderOrFile: '$(projectRoot)' + includeRootFolder: false + archiveType: zip + archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip + replaceExistingArchive: true + + - upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip + displayName: 'Upload package' + artifact: drop + + + +- stage: Deploy + displayName: 'Deploy Web App' + dependsOn: Build + condition: succeeded() + jobs: + - deployment: DeploymentJob + pool: + vmImage: $(vmImageName) + environment: $(environmentName) + strategy: + runOnce: + deploy: + steps: + + - task: UsePythonVersion@0 + inputs: + versionSpec: '$(pythonVersion)' + displayName: 'Use Python version' + + - task: AzureWebApp@1 + displayName: 'Deploy Azure Web App : $(webAppName)' + inputs: + azureSubscription: $(azureServiceConnectionId) + appName: $(webAppName) + package: $(Pipeline.Workspace)/drop/$(Build.BuildId).zip \ No newline at end of file diff --git a/hello_app/static/site.css b/hello_app/static/site.css index c14da260c..bde179534 100644 --- a/hello_app/static/site.css +++ b/hello_app/static/site.css @@ -29,4 +29,249 @@ .body-content { padding: 5px; font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; -} \ No newline at end of file +} + +.about-page { + position: relative; + min-height: 420px; + background: radial-gradient(circle at top left, #f5f8ff, #e6f0ff 40%, #d2e3ff 100%); + border-radius: 14px; + padding: 24px 28px; + box-shadow: 0 18px 50px rgba(35, 65, 130, 0.15); + overflow: hidden; +} + +.about-hero { + text-align: center; + margin-bottom: 24px; +} + +.hero-title { + font-size: 2.3rem; + font-weight: 800; + color: #1a237e; + animation: rainbowText 4s infinite linear; +} + +.hero-subtitle { + margin-top: 8px; + font-size: 1.05rem; + color: #333; + max-width: 720px; + margin-left: auto; + margin-right: auto; +} + +.hero-emoji { + margin-top: 18px; + font-size: 2.7rem; + animation: floatEmoji 3s ease-in-out infinite; +} + +.about-card { + background: rgba(255, 255, 255, 0.95); + border-radius: 18px; + padding: 22px; + border: 1px solid rgba(24, 39, 112, 0.08); + animation: floatCard 6s ease-in-out infinite; +} + +.hero-title { + animation: rainbowText 4s infinite linear, popTitle 4.5s ease-in-out infinite; +} + +.hero-subtitle { + margin-top: 8px; + font-size: 1.05rem; + color: #333; + max-width: 720px; + margin-left: auto; + margin-right: auto; + animation: textGlow 5.5s ease-in-out infinite; +} + +.doc-section { + margin-top: 18px; + padding: 14px; + background: #eef4ff; + border-radius: 12px; + border-left: 4px solid #4f6cff; +} + +.doc-badge { + display: inline-block; + font-weight: 700; + background: #4f6cff; + color: white; + padding: 4px 12px; + border-radius: 999px; + margin-bottom: 12px; +} + +.doc-link { + display: inline-block; + margin-top: 10px; + font-weight: 700; + color: #1a237e; + text-decoration: none; + border: 2px solid #1a237e; + padding: 8px 14px; + border-radius: 999px; + transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease; +} + +.doc-link:hover { + transform: translateY(-2px); + background: #1a237e; + color: #fff; +} + +.magic-button { + display: inline-block; + margin-top: 20px; + padding: 14px 26px; + border: 2px dashed #4f6cff; + border-radius: 999px; + color: #4f6cff; + text-decoration: none; + font-weight: 800; + background: rgba(255,255,255,0.85); + animation: pulseButton 2.4s infinite ease-in-out; + box-shadow: 0 18px 30px rgba(79,108,255,0.18); +} + +.magic-button:hover { + transform: scale(1.04); + border-color: #ff4081; + color: #ff4081; +} + +.fun-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); + gap: 14px; + margin-bottom: 20px; +} + +.fun-card { + background: rgba(255,255,255,0.92); + border-radius: 16px; + padding: 16px; + border: 1px solid rgba(79,108,255,0.12); + transition: transform 0.25s ease, box-shadow 0.25s ease; +} + +.fun-card:hover { + transform: translateY(-6px) rotate(-1deg); + box-shadow: 0 22px 45px rgba(79,108,255,0.2); +} + +.fun-icon { + font-size: 2.2rem; + margin-bottom: 10px; + animation: wobbleIcon 3.2s ease-in-out infinite; +} + +.home-fun-note { + margin-top: 18px; + padding: 16px; + border-radius: 14px; + background: rgba(79, 108, 255, 0.08); + color: #1a237e; + font-weight: 600; +} + +.confetti-zone { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + pointer-events: none; +} + +.confetti { + position: absolute; + font-size: 1.8rem; + opacity: 0.8; + animation: spinFloat 4s infinite ease-in-out; +} + +.confetti-1 { top: 10%; left: 12%; animation-delay: 0s; } +.confetti-2 { top: 22%; right: 14%; animation-delay: 0.5s; } +.confetti-3 { bottom: 16%; left: 18%; animation-delay: 1s; } +.confetti-4 { bottom: 10%; right: 12%; animation-delay: 1.4s; } +.confetti-5 { top: 42%; left: 22%; animation-delay: 0.3s; } +.confetti-6 { bottom: 24%; right: 25%; animation-delay: 0.9s; } + +.sparkle-trail { + position: absolute; + top: 12%; + right: 8%; + width: 100px; + height: 200px; + pointer-events: none; +} + +.sparkle { + position: absolute; + font-size: 1.2rem; + opacity: 0.8; + animation: sparkleTrail 3.5s infinite ease-in-out; +} + +.sparkle-1 { top: 0; left: 0; animation-delay: 0s; } +.sparkle-2 { top: 30%; left: 20%; animation-delay: 0.3s; } +.sparkle-3 { top: 60%; left: 50%; animation-delay: 0.6s; } +.sparkle-4 { top: 10%; left: 70%; animation-delay: 1s; } + +@keyframes rainbowText { + 0%, 100% { color: #1a237e; } + 25% { color: #4f6cff; } + 50% { color: #f50057; } + 75% { color: #ffb300; } +} + +@keyframes popTitle { + 0%, 100% { transform: scale(1); } + 50% { transform: scale(1.04); } +} + +@keyframes textGlow { + 0%, 100% { text-shadow: 0 0 0 rgba(255,255,255,0); } + 50% { text-shadow: 0 0 18px rgba(79,108,255,0.25); } +} + +@keyframes floatCard { + 0%, 100% { transform: translateY(0); } + 50% { transform: translateY(-8px); } +} + +@keyframes floatEmoji { + 0%, 100% { transform: translateY(0); } + 50% { transform: translateY(-12px) rotate(10deg); } +} + +@keyframes spinFloat { + 0% { transform: translate(0, 0) rotate(0deg); opacity: 0.8; } + 50% { transform: translate(12px, -20px) rotate(180deg); opacity: 1; } + 100% { transform: translate(0, 0) rotate(360deg); opacity: 0.8; } +} + +@keyframes pulseButton { + 0%, 100% { transform: scale(1); box-shadow: 0 18px 30px rgba(79,108,255,0.18); } + 50% { transform: scale(1.03); box-shadow: 0 24px 40px rgba(79,108,255,0.28); } +} + +@keyframes wobbleIcon { + 0%, 100% { transform: rotate(0deg); } + 25% { transform: rotate(-12deg); } + 50% { transform: rotate(12deg) translateY(-2px); } + 75% { transform: rotate(-8deg); } +} + +@keyframes sparkleTrail { + 0% { transform: translateY(0) scale(1); opacity: 0.8; } + 50% { transform: translateY(-18px) scale(1.1); opacity: 1; } + 100% { transform: translateY(0) scale(1); opacity: 0.8; } +} diff --git a/hello_app/templates/about.html b/hello_app/templates/about.html index 8611b6414..110059c5a 100644 --- a/hello_app/templates/about.html +++ b/hello_app/templates/about.html @@ -3,5 +3,31 @@ About us {% endblock %} {% block content %} -

About page for the Visual Studio Code Flask tutorial.

+
+
+
Welcome to the Most Animated About Page!
+
This page now has silly animation, dancing emojis, and a Microsoft Docs link.
+
πŸš€βœ¨πŸ€–
+
+ +
+

About page for the Visual Studio Code Flask tutorial.

+

Enjoy a funny animation while you explore Flask, VS Code, and Microsoft docs.

+ +
+ Microsoft Docs +

Learn more from the official Microsoft documentation for Python and Visual Studio Code.

+ + Visit Microsoft Docs for Visual Studio Code + Python + +
+
+ +
+ ✨ + πŸŽ‰ + πŸ’₯ + πŸͺ„ +
+
{% endblock %} diff --git a/hello_app/templates/contact.html b/hello_app/templates/contact.html index 3321c9454..3a12d1761 100644 --- a/hello_app/templates/contact.html +++ b/hello_app/templates/contact.html @@ -3,5 +3,31 @@ Contact us {% endblock %} {% block content %} -

Contact page for the Visual Studio Code Flask tutorial.

+
+
+
Contact the Fun Team!
+
Need help? Send a message and we’ll reply with a dancing emoji.
+
πŸ“¬πŸ’¬πŸ€£
+
+ +
+

Contact page for the Visual Studio Code Flask tutorial.

+

We’re excited to hear from you! Reach out if you have questions about Flask, VS Code, or deploying your app.

+ +
+ Microsoft Docs +

Check the official docs for getting started with Python in Visual Studio Code.

+ + Open Microsoft Docs for Python in VS Code + +
+
+ +
+ 🎈 + 🎊 + πŸ˜„ + 🌟 +
+
{% endblock %} diff --git a/hello_app/templates/home.html b/hello_app/templates/home.html index 95609fecd..88205a67f 100644 --- a/hello_app/templates/home.html +++ b/hello_app/templates/home.html @@ -1,7 +1,65 @@ {% extends "layout.html" %} + {% block title %} -Home +Home - Animated Flask Tutorial {% endblock %} + {% block content %} -

Home page for the Visual Studio Code Flask tutorial.

+
+
+
Welcome to the Fun Flask Home Page!
+
This tutorial is now animated, playful, and ready to make you smile.
+
πŸŽˆπŸš€πŸ’«
+
+ +
+
+
+
πŸ§ͺ
+

Flask Fiesta

+

Your app is ready to party with flashing animations and a goofy grin.

+
+
+
πŸ§‘β€πŸ’»
+

VS Code Vibes

+

Code like a wizard, then watch the page dance with joy.

+
+
+
πŸ“˜
+

Docs Disco

+

Official Microsoft documentation is just one glittering click away.

+
+
+ +
+ Microsoft Docs +

Learn how to build Python web apps using Visual Studio Code with the official docs.

+ + Read Microsoft Docs for VS Code + Python + +
+ +
+

Pro tip: Click around and enjoy the silly confetti everywhere!

+
+ + Click me for more fun! +
+ +
+ ✨ + πŸŽ‰ + 😎 + 🌟 + 🍿 + πŸ•Ί +
+ +
+ ✨ + πŸ’« + 🌈 + πŸͺ© +
+
{% endblock %} diff --git a/requirements.txt b/requirements.txt index e3e9a71d9..7e66a7a24 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,5 @@ -Flask +Flask==3.0.0 +Werkzeug==3.0.1 +azure-cli==2.60.0 +pytest==8.2.0 +requests==2.31.0 diff --git a/test1/python-sample-vscode-flask-tutorial b/test1/python-sample-vscode-flask-tutorial new file mode 160000 index 000000000..18ec0529b --- /dev/null +++ b/test1/python-sample-vscode-flask-tutorial @@ -0,0 +1 @@ +Subproject commit 18ec0529b6ddeedc1eaf97f262aa973d6d2efc9e diff --git a/test_sample.py b/test_sample.py new file mode 100644 index 000000000..d2cd73cb2 --- /dev/null +++ b/test_sample.py @@ -0,0 +1,2 @@ +def test_basic(): + assert True \ No newline at end of file