Sign inSign up

structure101/build-dotnet

By structure101

Updated over 2 years ago

Image
0

221

structure101/build-dotnet repository overview

Quick reference

What is Structure101?

Structure101 is a software architecture platform that bridges the architect / programmer divide to deliver the benefits of well-structured codebases with defined and communicated architecture.

Structure101

Structure101 build-dotnet image usage

The Structure101 product suite contains a number of components: Studio (architects & team leads), Workspace (developers), Build (CI/CD integration), and the Soda Dependency Database. This Docker image contains Structure101 Build for .Net and allows you to easily integrate Structure101 Build for .Net into your cloud based CI/CD environment.

How to use this image

This image takes the following parameters (* Required parameters):

  1. * You pass the name of your project using the S101_PROJECT environment variable.
  2. You pass your project snapshot label using the S101_LABEL environment variable. This parameter is optional, if not provided your snapshot will be published with the label '_1'. With subsequent labels of '_2', '_3' etc.
  3. * You map your Structure101 user directory (typically C:\Users\Your-Name\Structure101\dotnet) containing your Structure101 license and log files to C:\Users\ ContainerAdministrator\Structure101\dotnet on the container.
  4. * You map your project root to C:\structure101-project on the container. Your project root must contain your .sln file, your Structure101 project file, named structure101.dotnet.hsp, and your Structure101 build configuration file, name structure101-build-config.xml.
  5. You map your Structure101 repository to C:\structure101-repository on the container. A valid Structure101 repository can be a directory must contain a valid repository.properties or repository.xml file, an AWS or JFrog repository, or a Structure101 Soda Dependency Database, more details here. This parameter is optional when your repository is a file based repository contained within your project root directory, and referenced in your structure101-build-conf.xml using 'const(THIS_FILE)'. For example, your project root directory contains a valid Structure101 repository under the 101-repo sub-directory and referenced with:

<argument name="repository" value="const(THIS_FILE)/101-repo/"/>

For example:

docker run -e S101_PROJECT=my-project -e S101_LABEL=1.0 -v "C:\Users\paulh\Structure101\dotnet\:C:\Users\ContainerAdministrator\Structure101\dotnet" -v "C:\Users\paulh\Documents\dotnet\eShopOnWeb\:C:\structure101-project" -v "C:\Users\paulh\Documents\dotnet\eShopOnWeb\101-repo\:C:\structure101-repository" -it structure101/build-dotnet

NOTE: Container mount points should not end in '\'

Sample Structure101 Project File
<?xml version="1.0" encoding="UTF-8"?>
<local-project language="dotnet" version="6.1.23043" xml-version="3" flavor="dotNet">
  <property name="show-as-module" value="false" />
  <property name="relative-to" value="const(THIS_FILE)" />
  <property name="action-set-mod" value="1" />
  <property name="detail-mode" value="true" />
  <property name="enabled-optional-measures" value="" />
  <property name="resolve-name-clashes" value="true" />
  <property name="regenerate-data" value="true" />
  <property name="hide-externals" value="true" />
  <assemblyList>
    <assembly kind="lib" path="./my-solution.sln" />
  </assemblyList>
  <restructuring>
    <set version="3" name="Action list 1" hiview="Codemap" active="true" todo="false" list="0" />
  </restructuring>
  <grid-set sep="." version="6.1.23043" />
</local-project>
Sample Structure101 Build Configuration File
<?xml version="1.0" encoding="UTF-8"?>
<headless version="1.0">
    <arguments>
        <argument name="repository" value="/var/structure101-repositories/dotnet/"/>
        <argument name="project" value="my-project"/>
        <argument name="local-project" value="const(THIS_FILE)/structure101.dotnet.hsp">
	</argument>
	</arguments>
	<!-- OPERATIONS TO EXCEUTE -->
	<operations>
		<!-- SAMPLE REPORT OPERATION -->
		<operation type="report-key-measures">
			<argument name="output-file" value="const(THIS_FILE)/report-key-measures.xml" />
			<argument name="xml" value="true" />
			<argument name="show-summary" value="true" />
		</operation>
		<!-- PUBLISH OPERATION -->
		<operation type="publish"></operation>
	</operations>
</headless>
Valid Structure101 repository.xml
<?xml version="1.0" encoding="UTF-8"?>
<structure101-repository language="dotnet" version="24041">
  <xs-configuration>
    <entry metric="Tangled" scope="design" threshold="0" color="153,53,0" />
    <entry metric="Fat" scope="design" threshold="120" color="255,153,0" />
    <entry metric="Fat" scope="leaf global namespace" threshold="120" color="0,153,153" />
    <entry metric="Fat" scope="class" threshold="120" color="255,153,153" />
    <entry metric="Fat" scope="method" threshold="15" color="51,255,51" />
  </xs-configuration>
  <!--Note: All date strings are stored in short US format e.g. 2/1/06 for 1st Feb 2006-->
</structure101-repository>

Tag summary

Content type

Image

Digest

sha256:83bfa015b

Size

8.6 GB

Last updated

over 2 years ago

docker pull structure101/build-dotnet