stages: - pages - build-frontend - build-backend - deploy pages: image: shockrah/website:latest stage: pages only: refs: - master before_script: - git submodule init - git submodule update script: - cd gitpage - hugo - mv public/ .. - ls ../public -R artifacts: paths: - public/ build-frontend-js: image: codesignal/typescript:v9.6.0 stage: build-frontend stage: pages only: refs: - master script: - cd ts/ - npm run setup - npm run build artifacts: paths: - api/static/ # Literally both of these fail 99% of the time so I'm forgoing them completely # for now until I find something doesn't suck # Builds out the intended zip package build-server-binaries: image: rustlang/rust:nightly stage: build-backend stage: pages only: refs: - master script: - mkdir -p build - cp api/templates/ api/static/ build/ -r - cd api/ - cargo build --release - cd ../ - cp api/target/release/clippable-server build/server - cp ./scripts/ build/ -r - cp readme.md build/ - sh ./scripts/default-rocket-toml.sh artifacts: paths: - build/ # Upload built docker image to the local registry deploy-docker-image: stage: deploy image: docker:stable only: refs: - master needs: - build-server-binaries dependencies: - build-server-binaries services: - docker:dind script: - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" - docker build -t registry.gitlab.com/shockrah/clippable . - docker push registry.gitlab.com/shockrah/clippable