mirror of
https://github.com/nsnail/Ocelot.git
synced 2025-04-22 06:22:50 +08:00
testing circleci
This commit is contained in:
parent
fab09ab4dc
commit
925422f7ad
8
.circleci/config.yml
Normal file
8
.circleci/config.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
version: 2
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
docker:
|
||||||
|
- image: mijitt0m/ocelot-build:0.0.1
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- run: build.sh
|
49
Dockerfile
49
Dockerfile
@ -1,48 +1,9 @@
|
|||||||
#This is the base image used for any ran images
|
FROM mijitt0m/ocelot-build:0.0.1
|
||||||
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
|
|
||||||
WORKDIR /app
|
|
||||||
EXPOSE 80
|
|
||||||
|
|
||||||
#This image is used to build the source for the runnable app
|
WORKDIR /src
|
||||||
#It can also be used to run other CLI commands on the project, such as packing/deploying nuget packages. Some examples:
|
|
||||||
#Run tests: docker build --target builder -t ocelot-build . && docker run ocelot-build test --logger:trx;LogFileName=results.trx
|
|
||||||
#Run benchmarks: docker build --target builder --build-arg build_configuration=Release -t ocelot-build . && docker run ocelot-build run -c Release --project test/Ocelot.Benchmarks/Ocelot.Benchmarks.csproj
|
|
||||||
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS builder
|
|
||||||
WORKDIR /build
|
|
||||||
#First we add only the project files so that we can cache nuget packages with dotnet restore
|
|
||||||
COPY Ocelot.sln Ocelot.sln
|
|
||||||
COPY src/Ocelot/Ocelot.csproj src/Ocelot/Ocelot.csproj
|
|
||||||
COPY src/Ocelot.Administration/Ocelot.Administration.csproj src/Ocelot.Administration/Ocelot.Administration.csproj
|
|
||||||
COPY src/Ocelot.Cache.CacheManager/Ocelot.Cache.CacheManager.csproj src/Ocelot.Cache.CacheManager/Ocelot.Cache.CacheManager.csproj
|
|
||||||
COPY src/Ocelot.Provider.Consul/Ocelot.Provider.Consul.csproj src/Ocelot.Provider.Consul/Ocelot.Provider.Consul.csproj
|
|
||||||
COPY src/Ocelot.Provider.Eureka/Ocelot.Provider.Eureka.csproj src/Ocelot.Provider.Eureka/Ocelot.Provider.Eureka.csproj
|
|
||||||
COPY src/Ocelot.Provider.Polly/Ocelot.Provider.Polly.csproj src/Ocelot.Provider.Polly/Ocelot.Provider.Polly.csproj
|
|
||||||
COPY src/Ocelot.Provider.Rafty/Ocelot.Provider.Rafty.csproj src/Ocelot.Provider.Rafty/Ocelot.Provider.Rafty.csproj
|
|
||||||
COPY src/Ocelot.Tracing.Butterfly/Ocelot.Tracing.Butterfly.csproj src/Ocelot.Tracing.Butterfly/Ocelot.Tracing.Butterfly.csproj
|
|
||||||
COPY src/Ocelot.Provider.Kubernetes/Ocelot.Provider.Kubernetes.csproj src/Ocelot.Provider.Kubernetes/Ocelot.Provider.Kubernetes.csproj
|
|
||||||
COPY test/Ocelot.AcceptanceTests/Ocelot.AcceptanceTests.csproj test/Ocelot.AcceptanceTests/Ocelot.AcceptanceTests.csproj
|
|
||||||
COPY test/Ocelot.ManualTest/Ocelot.ManualTest.csproj test/Ocelot.ManualTest/Ocelot.ManualTest.csproj
|
|
||||||
COPY test/Ocelot.IntegrationTests/Ocelot.IntegrationTests.csproj test/Ocelot.IntegrationTests/Ocelot.IntegrationTests.csproj
|
|
||||||
COPY test/Ocelot.UnitTests/Ocelot.UnitTests.csproj test/Ocelot.UnitTests/Ocelot.UnitTests.csproj
|
|
||||||
COPY test/Ocelot.Benchmarks/Ocelot.Benchmarks.csproj test/Ocelot.Benchmarks/Ocelot.Benchmarks.csproj
|
|
||||||
|
|
||||||
RUN dotnet restore
|
COPY ./. .
|
||||||
#Now we add the rest of the source and run a complete build... --no-restore is used because nuget should be resolved at this point
|
|
||||||
COPY codeanalysis.ruleset codeanalysis.ruleset
|
|
||||||
COPY src src
|
|
||||||
COPY test test
|
|
||||||
ARG build_configuration=Debug
|
|
||||||
RUN dotnet build --no-restore -c ${build_configuration}
|
|
||||||
ENTRYPOINT ["dotnet"]
|
|
||||||
|
|
||||||
#This is just for holding the published manual tests...
|
RUN chmod u+x build.sh
|
||||||
FROM builder AS manual-test-publish
|
|
||||||
ARG build_configuration=Debug
|
|
||||||
RUN dotnet publish --no-build -c ${build_configuration} -o /app test/Ocelot.ManualTest
|
|
||||||
|
|
||||||
#Run manual tests! This is the default run option.
|
RUN /bin/bash -c "/src/build.sh"
|
||||||
#docker build -t ocelot-manual-test . && docker run --net host ocelot-manual-test
|
|
||||||
FROM base AS manual-test
|
|
||||||
ENV ASPNETCORE_ENVIRONMENT=Development
|
|
||||||
COPY --from=manual-test-publish /app .
|
|
||||||
ENTRYPOINT ["dotnet", "Ocelot.ManualTest.dll"]
|
|
7
docker/Dockerfile
Normal file
7
docker/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-bionic AS build
|
||||||
|
|
||||||
|
RUN apt install gnupg ca-certificates
|
||||||
|
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
|
||||||
|
RUN echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | tee /etc/apt/sources.list.d/mono-official-stable.list
|
||||||
|
RUN apt update
|
||||||
|
RUN apt-get -y install mono-devel
|
3
docker/README.md
Normal file
3
docker/README.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# docker build
|
||||||
|
|
||||||
|
This folder contains the dockerfile and script to create the ocelot build container.
|
5
docker/docker-build.sh
Executable file
5
docker/docker-build.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
docker build -t mijitt0m/ocelot-build .
|
||||||
|
echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
|
||||||
|
docker tag mijitt0m/ocelot-build mijitt0m/ocelot-build:0.0.1
|
||||||
|
docker push mijitt0m/ocelot-build:latest
|
||||||
|
docker push mijitt0m/ocelot-build:0.0.1
|
48
samples/Docker/Dockerfile
Normal file
48
samples/Docker/Dockerfile
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#This is the base image used for any ran images
|
||||||
|
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
|
||||||
|
WORKDIR /app
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
#This image is used to build the source for the runnable app
|
||||||
|
#It can also be used to run other CLI commands on the project, such as packing/deploying nuget packages. Some examples:
|
||||||
|
#Run tests: docker build --target builder -t ocelot-build . && docker run ocelot-build test --logger:trx;LogFileName=results.trx
|
||||||
|
#Run benchmarks: docker build --target builder --build-arg build_configuration=Release -t ocelot-build . && docker run ocelot-build run -c Release --project test/Ocelot.Benchmarks/Ocelot.Benchmarks.csproj
|
||||||
|
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS builder
|
||||||
|
WORKDIR /build
|
||||||
|
#First we add only the project files so that we can cache nuget packages with dotnet restore
|
||||||
|
COPY Ocelot.sln Ocelot.sln
|
||||||
|
COPY src/Ocelot/Ocelot.csproj src/Ocelot/Ocelot.csproj
|
||||||
|
COPY src/Ocelot.Administration/Ocelot.Administration.csproj src/Ocelot.Administration/Ocelot.Administration.csproj
|
||||||
|
COPY src/Ocelot.Cache.CacheManager/Ocelot.Cache.CacheManager.csproj src/Ocelot.Cache.CacheManager/Ocelot.Cache.CacheManager.csproj
|
||||||
|
COPY src/Ocelot.Provider.Consul/Ocelot.Provider.Consul.csproj src/Ocelot.Provider.Consul/Ocelot.Provider.Consul.csproj
|
||||||
|
COPY src/Ocelot.Provider.Eureka/Ocelot.Provider.Eureka.csproj src/Ocelot.Provider.Eureka/Ocelot.Provider.Eureka.csproj
|
||||||
|
COPY src/Ocelot.Provider.Polly/Ocelot.Provider.Polly.csproj src/Ocelot.Provider.Polly/Ocelot.Provider.Polly.csproj
|
||||||
|
COPY src/Ocelot.Provider.Rafty/Ocelot.Provider.Rafty.csproj src/Ocelot.Provider.Rafty/Ocelot.Provider.Rafty.csproj
|
||||||
|
COPY src/Ocelot.Tracing.Butterfly/Ocelot.Tracing.Butterfly.csproj src/Ocelot.Tracing.Butterfly/Ocelot.Tracing.Butterfly.csproj
|
||||||
|
COPY src/Ocelot.Provider.Kubernetes/Ocelot.Provider.Kubernetes.csproj src/Ocelot.Provider.Kubernetes/Ocelot.Provider.Kubernetes.csproj
|
||||||
|
COPY test/Ocelot.AcceptanceTests/Ocelot.AcceptanceTests.csproj test/Ocelot.AcceptanceTests/Ocelot.AcceptanceTests.csproj
|
||||||
|
COPY test/Ocelot.ManualTest/Ocelot.ManualTest.csproj test/Ocelot.ManualTest/Ocelot.ManualTest.csproj
|
||||||
|
COPY test/Ocelot.IntegrationTests/Ocelot.IntegrationTests.csproj test/Ocelot.IntegrationTests/Ocelot.IntegrationTests.csproj
|
||||||
|
COPY test/Ocelot.UnitTests/Ocelot.UnitTests.csproj test/Ocelot.UnitTests/Ocelot.UnitTests.csproj
|
||||||
|
COPY test/Ocelot.Benchmarks/Ocelot.Benchmarks.csproj test/Ocelot.Benchmarks/Ocelot.Benchmarks.csproj
|
||||||
|
|
||||||
|
RUN dotnet restore
|
||||||
|
#Now we add the rest of the source and run a complete build... --no-restore is used because nuget should be resolved at this point
|
||||||
|
COPY codeanalysis.ruleset codeanalysis.ruleset
|
||||||
|
COPY src src
|
||||||
|
COPY test test
|
||||||
|
ARG build_configuration=Debug
|
||||||
|
RUN dotnet build --no-restore -c ${build_configuration}
|
||||||
|
ENTRYPOINT ["dotnet"]
|
||||||
|
|
||||||
|
#This is just for holding the published manual tests...
|
||||||
|
FROM builder AS manual-test-publish
|
||||||
|
ARG build_configuration=Debug
|
||||||
|
RUN dotnet publish --no-build -c ${build_configuration} -o /app test/Ocelot.ManualTest
|
||||||
|
|
||||||
|
#Run manual tests! This is the default run option.
|
||||||
|
#docker build -t ocelot-manual-test . && docker run --net host ocelot-manual-test
|
||||||
|
FROM base AS manual-test
|
||||||
|
ENV ASPNETCORE_ENVIRONMENT=Development
|
||||||
|
COPY --from=manual-test-publish /app .
|
||||||
|
ENTRYPOINT ["dotnet", "Ocelot.ManualTest.dll"]
|
0
samples/Docker/README.md
Normal file
0
samples/Docker/README.md
Normal file
Loading…
x
Reference in New Issue
Block a user