CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

01 August, 2024

Clone git repository and install python packages in a shared folder path

 Programing Coderfunda     August 01, 2024     No comments   

I have a python project in a git repository and I am creating an azure pipeline to do the following tasks for that project:



* If git repository does not exist on a shared folder path, then clone it, else pull the last code.

* If virtual environment folder (.venv) does not exist on a shared folder path, then create and activate the virtual environment, else activate the current environment.

* Install python packages located in the file requirements.txt






This is my current YAML file to reach the previous steps:
trigger:
- main

pool:
vmImage: 'windows-latest'
name: 'On Premise Windows'
demands: Agent.Name -equals [Agent_name]

variables:
- group: Variable_Group
- name: PAT
value: $[variables.PAT]

steps:
- checkout: self
displayName: 'Checkout Repository'

- powershell: |
$parent_folder = '\\server\my\shared\folder\path'
$target_folder = Join-Path -Path $parent_folder -ChildPath '[project_name]'
$target_folder_exists = Test-Path -Path $target_folder
if ($target_folder_exists) {
cd $target_folder
git pull
} else {
git clone '
https://$(PAT)@dev.azure.com/my/git/project' $parent_folder
}
enabled: True
displayName: 'Clone or Pull Git repository'

- task: UsePythonVersion@0
inputs:
versionSpec: '3.11'

- powershell: |
$parent_folder = '\\server\my\shared\folder\path\[project_name]'
$target_folder = Join-Path -Path $parent_folder -ChildPath '.venv'
&requirements_path = Join-Path -Path $parent_folder -ChildPath 'requirements.txt'
$target_folder_exists = Test-Path -Path $target_folder
if ($target_folder_exists) {
cd &parent_folder
& C:\"Program Files"\Python311\python.exe -m venv .venv
}
pip install -r $requirements_path
displayName: 'Setup Python Environment and Install Dependencies'



The agent I am using is intalled On-Premise server and my shared folder path is located in an Azure VM. I am getting the following error:



========================== Starting Command Output =========================== "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo
-NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ". '....'" fatal:
could not create leading directories of
'\server\my\shared\folder\path':
No such file or directory
##[error]PowerShell exited with code '1'. Finishing: Clone or Pull Git repository



It seems the On-premise server must have access to that shared folder path. Therefore, I have the following questions:



* Could On-premise server have access to the shared folder path if I give an user which has access to it? if so, how should I pass the user and password to access that path?. If not, what should be the proper way to achieve it?

* Is powershell a good approach to clone my repository and then to install the python packages? If not, what would be the rigth approach?
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • Vue.js Tutorial
      Vue.js Installation Compatibility Check Before going to install and use Vue.js in your project, you should check the compatibility issues....
  • JqueryUI Tutorial
    JqueryUI Tutorial    JqueryUI is the most popular front end frameworks currently. It is sleek, intuitive, and powerful mobile first fr...
  • Laravel - Application Structure
    The application structure in Laravel is basically the structure of folders, sub-folders and files included in a project. Once we create a ...
  • Python Tutorial
      Python   is a general-purpose interpreted, interactive, object-oriented, and high-level programming language. It was created by Guido van...
  • CSS Online Training
    CSS Online Training CSS is used to control the style of a web document in a simple and easy way. CSS is the acronym for "Casca...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (69)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • July (4)
  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

Loading...

Laravel News

Loading...

Copyright © CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda