Fixed CI
This commit is contained in:
		
							
								
								
									
										58
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
			
		||||
image: ubuntu:latest
 | 
			
		||||
 | 
			
		||||
stages:
 | 
			
		||||
    - build
 | 
			
		||||
    - package
 | 
			
		||||
 | 
			
		||||
build_backend:
 | 
			
		||||
    stage: build
 | 
			
		||||
    script:
 | 
			
		||||
        - apt-get update
 | 
			
		||||
        - apt-get install g++ gcc make cmake git curl zip unzip tar python3 pkg-config -y
 | 
			
		||||
        - SRC="$PWD"
 | 
			
		||||
        - TMP=$(mktemp -d)
 | 
			
		||||
        - cd $TMP
 | 
			
		||||
        - git clone https://github.com/Microsoft/vcpkg.git .
 | 
			
		||||
        - ./bootstrap-vcpkg.sh -disableMetrics
 | 
			
		||||
        - cd $SRC
 | 
			
		||||
        - cmake -B build -S backend -DCMAKE_TOOLCHAIN_FILE=$TMP/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release
 | 
			
		||||
        - cmake --build build
 | 
			
		||||
        - cp build/backend server
 | 
			
		||||
    artifacts:
 | 
			
		||||
        paths:
 | 
			
		||||
            - backend
 | 
			
		||||
        expire_in: 1h
 | 
			
		||||
 | 
			
		||||
test_and_build_frontend:
 | 
			
		||||
    image: node:latest
 | 
			
		||||
    stage: build
 | 
			
		||||
    cache:
 | 
			
		||||
        paths:
 | 
			
		||||
            - frontend/.yarn
 | 
			
		||||
            - frontend/node_modules
 | 
			
		||||
    script:
 | 
			
		||||
        - cd frontend
 | 
			
		||||
        - yarn install --cache-folder .yarn --frozen-lockfile
 | 
			
		||||
        - yarn lint
 | 
			
		||||
        - yarn build
 | 
			
		||||
    artifacts:
 | 
			
		||||
        paths:
 | 
			
		||||
            - frontend/dist/
 | 
			
		||||
        expire_in: 1h
 | 
			
		||||
 | 
			
		||||
package_server:
 | 
			
		||||
    stage: package
 | 
			
		||||
    cache: []
 | 
			
		||||
    before_script: []
 | 
			
		||||
    needs:
 | 
			
		||||
        - job: build_backend
 | 
			
		||||
          artifacts: true
 | 
			
		||||
        - job: test_and_build_frontend
 | 
			
		||||
          artifacts: true
 | 
			
		||||
    script:
 | 
			
		||||
        - mkdir static
 | 
			
		||||
        - mv frontend/dist/* static/
 | 
			
		||||
    artifacts:
 | 
			
		||||
        paths:
 | 
			
		||||
            - server
 | 
			
		||||
            - static/
 | 
			
		||||
@@ -24,19 +24,17 @@ add_executable(backend
 | 
			
		||||
        src/controllers/admin.cpp
 | 
			
		||||
        src/controllers/fs.cpp
 | 
			
		||||
        src/controllers/user.cpp
 | 
			
		||||
 | 
			
		||||
        src/controllers/auth/auth_common.cpp
 | 
			
		||||
        src/controllers/auth/auth_basic.cpp
 | 
			
		||||
        src/controllers/auth/auth_2fa.cpp
 | 
			
		||||
        src/controllers/auth/auth_gitlab.cpp
 | 
			
		||||
 | 
			
		||||
        src/filters/filters.h
 | 
			
		||||
        src/filters/filters.cpp
 | 
			
		||||
        src/controllers/auth/auth_gitlab.cpp)
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if (MINGW)
 | 
			
		||||
    target_link_libraries(backend -static-libgcc -static-libstdc++)
 | 
			
		||||
endif (MINGW)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
find_package(Drogon CONFIG REQUIRED)
 | 
			
		||||
find_package(CURL CONFIG REQUIRED)
 | 
			
		||||
@@ -64,6 +62,8 @@ target_link_libraries(backend
 | 
			
		||||
        ${QR_LIBRARY}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
install(TARGETS backend)
 | 
			
		||||
 | 
			
		||||
target_compile_options(backend PRIVATE
 | 
			
		||||
        $<$<CONFIG:Debug>:-g -Wall -Wno-unknown-pragmas>
 | 
			
		||||
        $<$<CONFIG:Release>:-O3>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,114 +0,0 @@
 | 
			
		||||
image: node:latest
 | 
			
		||||
 | 
			
		||||
stages:
 | 
			
		||||
    - setup
 | 
			
		||||
    - test
 | 
			
		||||
    - build
 | 
			
		||||
    - package
 | 
			
		||||
 | 
			
		||||
cache: &global_cache
 | 
			
		||||
    paths:
 | 
			
		||||
        - .yarn
 | 
			
		||||
        - node_modules
 | 
			
		||||
        - frontend/.yarn
 | 
			
		||||
        - frontend/node_modules
 | 
			
		||||
    policy: pull
 | 
			
		||||
 | 
			
		||||
before_script:
 | 
			
		||||
    - yarn install --cache-folder .yarn --frozen-lockfile
 | 
			
		||||
    - cd frontend
 | 
			
		||||
    - yarn install --cache-folder .yarn --frozen-lockfile
 | 
			
		||||
    - cd ..
 | 
			
		||||
 | 
			
		||||
.dto_artifacts_need: &dto_artifacts_need
 | 
			
		||||
    job: test_build_dto
 | 
			
		||||
    artifacts: true
 | 
			
		||||
 | 
			
		||||
test_build_dto:
 | 
			
		||||
    stage: setup
 | 
			
		||||
    cache:
 | 
			
		||||
        <<: *global_cache
 | 
			
		||||
        policy: pull-push
 | 
			
		||||
    before_script: []
 | 
			
		||||
    script:
 | 
			
		||||
        - cd dto
 | 
			
		||||
        - yarn install --frozen-lockfile
 | 
			
		||||
        - yarn lint
 | 
			
		||||
        - yarn build
 | 
			
		||||
        - cd ..
 | 
			
		||||
        - yarn install --cache-folder .yarn --frozen-lockfile
 | 
			
		||||
        - yarn add ./dto
 | 
			
		||||
        - cd frontend
 | 
			
		||||
        - yarn install --cache-folder .yarn --frozen-lockfile
 | 
			
		||||
        - yarn add ../dto
 | 
			
		||||
    artifacts:
 | 
			
		||||
        paths:
 | 
			
		||||
            - dto/lib/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
test_backend:
 | 
			
		||||
    needs:
 | 
			
		||||
        - *dto_artifacts_need
 | 
			
		||||
    stage: test
 | 
			
		||||
    script:
 | 
			
		||||
        - yarn lint
 | 
			
		||||
 | 
			
		||||
test_frontend:
 | 
			
		||||
    needs:
 | 
			
		||||
        - *dto_artifacts_need
 | 
			
		||||
    stage: test
 | 
			
		||||
    script:
 | 
			
		||||
        - cd frontend
 | 
			
		||||
        - yarn lint
 | 
			
		||||
 | 
			
		||||
build_backend:
 | 
			
		||||
    stage: build
 | 
			
		||||
    needs:
 | 
			
		||||
        - *dto_artifacts_need
 | 
			
		||||
        - job: test_backend
 | 
			
		||||
          artifacts: false
 | 
			
		||||
    script:
 | 
			
		||||
        - echo This has to work till I rewrite the backend
 | 
			
		||||
        - false && echo
 | 
			
		||||
        - yarn webpack
 | 
			
		||||
    artifacts:
 | 
			
		||||
        paths:
 | 
			
		||||
            - dist/
 | 
			
		||||
        expire_in: 1h
 | 
			
		||||
 | 
			
		||||
build_frontend:
 | 
			
		||||
    stage: build
 | 
			
		||||
    needs:
 | 
			
		||||
        - *dto_artifacts_need
 | 
			
		||||
        - job: test_frontend
 | 
			
		||||
          artifacts: false
 | 
			
		||||
    script:
 | 
			
		||||
        - cd frontend
 | 
			
		||||
        - yarn build
 | 
			
		||||
    artifacts:
 | 
			
		||||
        paths:
 | 
			
		||||
            - frontend/dist/
 | 
			
		||||
        expire_in: 1h
 | 
			
		||||
 | 
			
		||||
package_server:
 | 
			
		||||
    stage: package
 | 
			
		||||
    cache: []
 | 
			
		||||
    before_script: []
 | 
			
		||||
    needs:
 | 
			
		||||
        - job: build_backend
 | 
			
		||||
          artifacts: true
 | 
			
		||||
        - job: build_frontend
 | 
			
		||||
          artifacts: true
 | 
			
		||||
    script:
 | 
			
		||||
        - TMP=$(mktemp -d)
 | 
			
		||||
        - mv dist/* "$TMP"
 | 
			
		||||
        - mkdir "$TMP/frontend"
 | 
			
		||||
        - mv frontend/dist/* "$TMP/frontend"
 | 
			
		||||
        - rm -r *
 | 
			
		||||
        - rm -r .* || true
 | 
			
		||||
        - mv "$TMP/"* .
 | 
			
		||||
    artifacts:
 | 
			
		||||
        paths:
 | 
			
		||||
            - package.json
 | 
			
		||||
            - server.js
 | 
			
		||||
            - frontend/
 | 
			
		||||
		Reference in New Issue
	
	Block a user