diff --git a/.onedev-buildspec.yml b/.onedev-buildspec.yml index de96de5..cbed6a9 100644 --- a/.onedev-buildspec.yml +++ b/.onedev-buildspec.yml @@ -1,57 +1,42 @@ version: 43 jobs: -- name: Build for x86_64 - steps: - - type: CheckoutStep - name: Checkout - cloneCredential: - type: DefaultCredential - withLfs: true - withSubmodules: false - condition: SUCCESSFUL - optional: false - - type: CommandStep - name: Execute build - runInContainer: true - image: onedev.site.tesses.net/tesses-framework/tesses-framework:latest - interpreter: - type: DefaultInterpreter - commands: | - mkdir build - cd build - cmake -S .. -B . -DCROSSLANG_FETCHCONTENT=OFF - make -j12 - make install DESTDIR=../out - useTTY: true - condition: SUCCESSFUL - optional: false - - type: BuildImageStep - name: Build Docker Image - dockerfile: Dockerfile.run - output: - type: RegistryOutput - tags: onedev.site.tesses.net/crosslang/crosslang:latest onedev.site.tesses.net/crosslang/crosslang:@commit_hash@ - registryLogins: - - registryUrl: '@server_url@' - userName: '@job_token@' - passwordSecret: dockersecret - platforms: linux/amd64 - condition: SUCCESSFUL - optional: false - triggers: - - type: DependencyFinishedTrigger - projects: tesses-framework - - type: BranchUpdateTrigger - branches: master - userMatch: anyone - projects: crosslang - projectDependencies: - - projectPath: tesses-framework - buildProvider: - type: LastFinishedBuild - jobName: Build for x86_64 - artifacts: '*' - retryCondition: never - maxRetries: 3 - retryDelay: 30 - timeout: 14400 + - name: Build for x86_64 + steps: + - type: CheckoutStep + name: Checkout + cloneCredential: + type: DefaultCredential + withLfs: true + withSubmodules: false + condition: SUCCESSFUL + optional: false + - type: BuildImageStep + name: Build Docker Image + dockerfile: Dockerfile + output: + type: RegistryOutput + tags: onedev.site.tesses.net/crosslang/crosslang:latest onedev.site.tesses.net/crosslang/crosslang:@commit_hash@ + registryLogins: + - registryUrl: "@server_url@" + userName: "@job_token@" + passwordSecret: dockersecret + platforms: linux/amd64 + condition: SUCCESSFUL + optional: false + triggers: + - type: DependencyFinishedTrigger + projects: tesses-framework + - type: BranchUpdateTrigger + branches: master + userMatch: anyone + projects: crosslang + projectDependencies: + - projectPath: tesses-framework + buildProvider: + type: LastFinishedBuild + jobName: Build for x86_64 + artifacts: "*" + retryCondition: never + maxRetries: 3 + retryDelay: 30 + timeout: 14400 diff --git a/Dockerfile b/Dockerfile index 04df218..adb0c08 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,17 @@ -FROM onedev.site.tesses.net/tesses-framework/tesses-framework:latest -RUN apt update -y && \ - apt install -y --no-install-recommends \ - libjansson-dev wget && \ - apt clean -y && \ - rm -rf /var/lib/apt/lists/* -RUN mkdir /src && cd /src && git clone https://onedev.site.tesses.net/crosslang . && cd /src && mkdir build && cd build && cmake -S .. -B . && make -j4 && make install && cd / && rm -r /src -WORKDIR / +FROM alpine:latest AS build + +RUN apk update +RUN apk add --no-cache cmake g++ make git + +COPY ./ /src + + +RUN cd /src && mkdir build && cd build && cmake -S .. -B . -DTESSESFRAMEWORK_ENABLE_EXAMPLES=OFF -DTESSESFRAMEWORK_ENABLE_APPS=ON -DCMAKE_BUILD_TYPE=Release && make -j`nproc` && make install DESTDIR=/out + +FROM alpine:latest +RUN apk update +RUN apk add --no-cache libstdc++ +COPY --from=build /out/usr /usr + +ENV CROSSLANG_CONTAINER=1 +ENTRYPOINT ["/usr/local/bin/crossint"] diff --git a/Dockerfile.run b/Dockerfile.run deleted file mode 100644 index 14d42c3..0000000 --- a/Dockerfile.run +++ /dev/null @@ -1,2 +0,0 @@ -FROM onedev.site.tesses.net/tesses-framework/tesses-framework:latest -COPY out /