Sharepoint Online Code repository and continuous deployment - deployment

We are working on maintaining Sharepoint-Online themes, page layouts, styles (css, html, images from masterpage & siteassets) in git repository & continuous integration of changes to Dev, UAT & Prod environment. This is just the start of Sharepoint work. We will use VSTS for managing all these work. My question is:
1- We have some custom templates (html & css) specific to company & some templates provided by microsoft as part of sharepoint. We were planning to maintain only custom templates in git repository & not microsoft provided templates (because we are not going to change in m/s templates.). Can anyone please suggest whether this is as per microsoft guidelines.? Is there any standard documentation provided by microsoft for organizing these files in source control ?
2- How to maintain testing environment for development changes ? Should we go for Sandbox approach (which is deprecated for sharepoint-online) or follow the approach mentioned in https://sharepointologic.blogspot.com/2017/01/sharepoint-online-continuous-delivery_17.html ? We have different site collection for Dev / UAT & Prod environment. If going through second approach then to verify every change, developer need push code to site collection. What is the best approach suggested by Microsoft ? I found a useful link but not able to decide : https://sharepoint.stackexchange.com/questions/82781/how-to-setup-development-and-uat-for-sharepoint-online-multitenant?newreg=cc9cc6db7e64476ca7b26e246f29b30b
Please suggest

First question. Yes, you can put it into your git repository since you've already subscribe the service and paid for it.
Second question. This article provides step-by-step instructions to create a dev/test environment that includes the four different types of SharePoint Online team sites for the Secure SharePoint Online sites and files solution.
Team sites including:
Organization wide team site
Project 1 team site
Marketing campaigns team site
Company strategy team site
You can review Office 365 dev/test environment for more detail.

Related

Templates & Resources for creating documentation using Azure DevOps Wiki

Working on a relatively new team in a much larger organization, and as a side project I am looking at our current documentation for opportunities to improve/standardize our best practices/standards. The ideal tool we would like to use, if up to the task, is Azure DevOps Wiki (this is AZDO Service, not Server) since it lines up with the rest of our PM functions. I was doing some digging, and I have not found much in the way of resources/templates/guides that can really get you going for Azure DevOps Wiki.
Beyond general documentation best practices, is there any helpful tricks/resources that we can use to make the most out of that particular tool? Or is there just a better tool we should consider? Looking for ideas! Any feedback is appreciated.
What I am looking for is a library of templates/resources that could
be used to help standardize documentation.
Official doesn't provided any template or resources for standard. There has been a feature request here:
Make it possible to create wiki page based on a template
You can upvote this feature request of Azure DevOps and share your ideas.
But since the DevOps wiki is designed based on Azure DevOps repository, you can clone the template you want to your wiki repository.
The repository url of your wiki should be:
https://dev.azure.com/<Organization Name>/<Project Name>/_git/<Project Name>.wiki
Use this command to clone the wiki repository:
git clone https://<Personal Access Token>#dev.azure.com/<Organization Name>/<Project Name>/_git/<Project Name>.wiki
PS:
Every DevOps project has a hidden repository, which named '<Project Name>.wiki', this repository can't be access via the repository UI list, also can't be listed via the List Repositories REST API. This repository also unable to be managed as other common repositories. Only 'Security for Wiki'. The repository will store all of the information in the pages of wiki permanently unless you delete the file in the repo.
And the comments section of the wiki is implemented quite differently, it is not based on a git repo and does not provide an explicit manage method. If you accidentally delete an image in a comment from the wiki, you won't have any way to get it back.

Azure DevOps & copying code base from one project to another or finding a better way of doing this

I'm seeking advice on the following:
In my development shop we support a SASS solution to our customers. We currently have 10 sites that we develop and provide technical support. We're a small team, just 2 of us. We're using Azure DevOps services to host and manage our code, right now we're just using it for a code repo. Within our organization, we multiple projects that represent site. Each site uses the same code base, except the web.config. The web.config is used to change the UI\theme for each customer. When we get a request to create a new site, we first create a new project site and then we copy our code base from the "golden copy" project.
We use a "golden copy" code base to make feature changes and bug fixes. Once we develop a new feature (or fix an issue) to the golden copy, and then we push it to test, QA beings testing. If testing is successful, then the development team copies the entire "golden copy" code files and copies the code to each site project, build and deploy to test for QA to ensure that site works with the new changes . This can be time consuming and prone to errors.
I would like to know the following:
- Is there way in dev ops azure where we merge\copy from our golden
copy to our other site project's repos?
- Can you offer a better way for reorganizing our Organization\Projects
setup based on our current setup\workflow.
Thank you,
As Shayki mentioned, you can consider adopting Git branching strategy. Distributed version control systems like Git give you flexibility in how you use version control to share and manage code.
Keep your branch strategy simple. Build your strategy from these three concepts:
Use feature branches for all new features and bug fixes.
Merge feature branches into the master branch using pull requests.
Keep a high quality, up-to-date master branch.
A strategy that extends these concepts and avoids contradictions will result in a version control workflow for your team that is consistent and easy to follow. For details ,please refer to this official document.
Is there way in dev ops azure where we merge\copy from our golden copy
to our other site project's repos?
For this issue , do you refer to synchronize the changes on the golden copy to other projects' repos? If so, I think it can only be done manually(copy the entire "golden copy" code files to each site project) or clone the entire repo into other projects through the following steps.
In other projects, select the Import repository option:

TFS 2015 Project Wiki vs Code Wiki

We are using TFS 2015 On Premise, not in the cloud and I am trying to give access to Stakeholders so they can access the wiki. However, as a stakeholder I keep getting this error:
TF400409: You do not have licensing rights to access this feature: Code
After researching the error it seems to be related to the fact that Stakeholders do not have access to view Code Wikis as shown here. That link is for Azure DevOps and I am not sure if it applies to my case but I cannot find anything else so my assumption is it does apply. Even links within our TFS site, takes us to Azure DevOps for help and thus my assumption is it applies to us as well.
Here is a screenshot from the aforementioned link:
Question
What is the difference between Code Wikis and Project Wikis? It seems I need Project Wikis but how do I create a Project Wiki?
Thanks in advance!
Code Wiki are not available on TFS server 2015. You need to use version TFS 2018 or above for this.
Project Wiki
Every team project can have a wiki. Use the wiki to share information
with your team to understand and contribute to your project.
Each team project wiki is powered by a Git repository in the back-end.
When you create a team project, a Wiki Git repo is not created by
default. Provision a Git repository to store your wiki Markdown files,
or publish existing Markdown files from a Git repository to a wiki.
In the project page, you could directly choose to create project wiki.
Code Wiki
Content that you already maintain in a Git repository can be published to a wiki. For example, this could be content written to
support a software development kit (SDK), product documentation, or
README file. You can publish multiple wikis within a single team
project.
More details about the difference of them, kindly refer our official doc here:
Provisioned wikis vs. published code as a wiki
As how to use them in Azure DevOps/TFS, you could also take a look at this step by step tutorial -- Collaborating using Azure DevOps Wiki

Tranferring User Stories from Rally (CA Agile Central) to Visual Studio Team Services

I have been using Rally (CA Agile Central) for a little over a year now. I am looking for some way to transfer all of my User Stories from Agile to Visual Studio Team Services (was Visual Studio Online). The links on the Rally site don't seem to work at all, does anyone know of a good way to do this? I need to do this once, not keep it in sync.
I found OpsHub, which says it can do this, but its a synchronization service that costs way too much. Looking for the one time transfer solution.
You can use Microsoft TFS 2015 for Work Items to do this.
The connector provides five services to synchronize objects between CA
Agile Central and TFS:
Copy work items created in TFS to CA Agile Central (defects, user stories, or test cases only)
Copy work items created in CA Agile Central (defects, user stories, tasks, or test cases only) to TFS work items
Update CA Agile Central work items based on changes made in TFS
Update TFS work items based on changes made to CA Agile Central work items
Update CA Agile Central fields and TFS fields (may not be used in conjunction with the other update services)
Refer to this link for details: Microsoft TFS 2015 for Work Items Installation & User Guide.

Is There A Way To Backup Visual Studio Team Services Projects?

I'm advocating using Visual Studio Team Services for our source control solution, and have actually started doing so. However, my manager, who is somewhat apprehensive when it comes to cloud-hosted storage and services, wants to know what our contingency plan is in the event of Team Services ceasing to be accessible for whatever reason.
I've pointed out that we have our source code on our developers' computers, in their mapped work spaces, but admittedly if we ended up with just that and no access to Team Services we'd certainly be in a bit of bind. They might all be working on different parts of the same solution and we wouldn't be able to check all of their changes back into the central repository or merge changes made in separate branches. We also wouldn't have access to the comments associated with previous check-ins, or our backlog, tests, etc.
So, the question is, is there a way to backup everything that we're hosting in Team Services so that, in the event of something going wrong, we'd be able to restore all of that to a locally-hosted installation of TFS (or somewhere else)?
I'm a bit late to the party but we developed a Team Services backup tool. We scheduled it as a scheduled task and it runs once a night. It then just clones all our repositories to disk.
Taken from this blog:
We use the VSO Rest API to query our VSO account and get all the data
we need. Since in VSO you can only have one Team Project Collection,
we retrieve all the team projects of the default collection. Each of
these team projects can have multiple repositories that need to be
backed up. A folder is created for each team project and saved to a
location on disk that can be configured in the app.config. When the
team project folder is created, the task loops over each repository in
the team project and creates folders for each repository.
You can also fork it on GitHub here
There's no out of the box backup ability.
Now, if you are only referring to source control, and not work items, pull requests, builds, test plans or anything else that the service offers, then I'd suggest you migrate your code over to git.
With git every developer will have a complete copy of the source repository, including all history and commit comments. From there, it's a simple task to push the git repository to a different git hoster (such as bitbucket or github) and make them your new centrally hosted git repository.
On a historical note, Visual Studio Team Services at one point offered a data export for a period of time. You might want to add a vote or three to this related UserVoice idea to help raise the importance of the feature with Microsoft.
Side comment: The business risks in using Visual Studio Team Services will come from either Microsoft shutting down the Visual Studio Team Services service or that the underlying Azure infrastructure has such a catastrophic failure that your Visual Studio Team Services account is unrecoverable. Both of those are extremely low risk, and very likely lower than the risks you'd have running TFS on-premises, in your own data centre, unless of course, your infrastructure and staff are better than Microsoft's :-)
Not a full VS backup in terms of a restore of service. But you can take a full Zip from root down using the Code web site. Right click the root folder and has a zip download option. Pretty neat feature.
The easiest way to back up everything is to use something like the TFS Integration Platform to periodically pull off all your data into an on-premises TFS solution. I've set this up using an Azure VM that we turned off when we weren't actively backing up, which makes it really low cost. For more info on using the TFS IP with Team Services, see this: http://nakedalm.com/migration-from-tf-service-to-tf-server-with-the-tfs-integration-platform/