Browse Source

Build fix?

pull/1/head
Sebastian 9 years ago
parent
commit
c69d713fc7
  1. 19
      .dockerignore
  2. 254
      .gitignore
  3. 31
      Dockerfile.build
  4. 10
      build.docker-compose.yml
  5. 11
      build.ps1
  6. 17
      build.sh
  7. 1
      src/Squidex/Squidex.csproj

19
.dockerignore

@ -0,0 +1,19 @@
# User-specific files
*.suo
*.user
*.vs
# Build results
build
bin
obj
publish
# Test Output
_test-output
# NodeJS
node_modules
# Scripts (should be copied from node_modules on build)
**/wwwroot/scripts/**/*.*

254
.gitignore

@ -1,253 +1,19 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
*.vs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
[Xx]64/
[Xx]86/
[Bb]uild/
bld/
[Bb]in/
[Oo]bj/
# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# DNX
project.lock.json
artifacts/
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
build
bin
obj
publish
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Test Output
_test-output
# TODO: Un-comment the next line if you do not want to checkin
# your web deploy settings because they may include unencrypted
# passwords
#*.pubxml
*.publishproj
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignoreable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Microsoft Azure ApplicationInsights config file
ApplicationInsights.config
# Windows Store app package directory
AppPackages/
BundleArtifacts/
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
orleans.codegen.cs
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# LightSwitch generated files
GeneratedArtifacts/
ModelManifest.xml
# Paket dependency manager
.paket/paket.exe
# FAKE - F# Make
.fake/
# NodeJS
node_modules
# Scripts (should be copied from node_modules on build)
**/wwwroot/scripts/**/*.*
# OpenCover
GeneratedReports/
_test-output
**/wwwroot/scripts/**/*.*

31
tools/aspnetcore-build-phantomjs/Dockerfile → Dockerfile.build

@ -1,5 +1,6 @@
FROM microsoft/dotnet:1.1.0-sdk-msbuild-rc4
FROM microsoft/aspnetcore-build
# Install runtime dependencies
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates bzip2 libfontconfig \
@ -24,4 +25,28 @@ RUN set -x \
RUN phantomjs --version
WORKDIR /
COPY src/Squidex/package.json /tmp/package.json
RUN cd /tmp \
&& npm install \
&& npm rebuild node-sass
COPY . .
WORKDIR /
# Build Frontend
RUN cp -a /tmp/node_modules /src/Squidex/ \
&& cd /src/Squidex \
&& npm run build:copy \
&& npm run build \
&& npm run test:coverage
# Test Backend
RUN dotnet restore \
&& dotnet test tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj \
&& dotnet test tests/Squidex.Core.Tests/Squidex.Core.Tests.csproj \
&& dotnet test tests/Squidex.Read.Tests/Squidex.Read.Tests.csproj \
&& dotnet test tests/Squidex.Write.Tests/Squidex.Write.Tests.csproj
# Publish
RUN dotnet publish src/Squidex/Squidex.csproj --output /out/ --configuration Release

10
build.docker-compose.yml

@ -1,10 +0,0 @@
version: '2'
services:
squidex-build:
# Use custom aspnet images where phantomjs is installed
build: tools/aspnetcore-build-phantomjs
volumes:
- .:/sln
working_dir: /sln
# Run the build script on local folder
entrypoint: ["sh", "./build.sh"]

11
build.ps1

@ -0,0 +1,11 @@
# Build the image
docker build . -t build-image -f Dockerfile.build
# Open the image
docker create --name build-cont build-image
# Copy the output to the host file system
docker cp build-cont:/out ./publish
# Cleanup
docker rm build-cont

17
build.sh

@ -1,17 +0,0 @@
#!bin/bash
set -e
cd src/Squidex
npm install
npm rebuild node-sass
npm rebuild phantomjs-prebuilt
npm run test:coverage
npm run build:copy
npm run build
cd ./../..
dotnet restore
dotnet test tests/Squidex.Core.Tests/Squidex.Core.Tests.csproj
dotnet test tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj
dotnet test tests/Squidex.Read.Tests/Squidex.Read.Tests.csproj
dotnet test tests/Squidex.Write.Tests/Squidex.Write.Tests.csproj
rm -rf $(pwd)/publish/web
dotnet publish src/Squidex/Squidex.csproj -c release -o $(pwd)/publish/web

1
src/Squidex/Squidex.csproj

@ -15,7 +15,6 @@
<ItemGroup>
<EmbeddedResource Include="Config\Identity\Cert\*.*" Exclude="bin\**;obj\**;**\*.xproj;packages\**;@(EmbeddedResource)" />
<Content Include="wwwroot\styles\static.css" />
<Content Update="appsettings.json;appsettings.Production.json;dockerfile;Views\**\*;web.config;wwwroot\**\*">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>

Loading…
Cancel
Save