adds gitlab ci

This commit is contained in:
Drew
2025-04-16 10:45:55 -06:00
parent adbd294e30
commit a0f84311d2

68
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,68 @@
# Default image for jobs - contains Hugo Extended
image:
name: klakegg/hugo:ext
entrypoint: [""]
variables:
HUGO_ENV: production
# Tells GitLab Runner to initialize and update submodules recursively
GIT_SUBMODULE_STRATEGY: recursive
SURFER_SERVER: "https://protocol.ecologies.info/"
stages:
- build # Added build stage
- deploy
# Job to build the Hugo site
build_site:
stage: build
before_script:
- echo "installing NPM packages"
- npm install
# This job uses the default image (klakegg/hugo:ext)
script:
- echo "Starting Hugo build..."
- hugo version
- hugo --minify --gc --cleanDestinationDir # Build the site
- echo "Build completed. Public directory contents:"
- ls -la public/
artifacts:
paths:
- public/ # Pass the 'public' directory to the next stage
expire_in: 1 hour # Optional: Set artifact expiry
# Define when this job runs (e.g., only on the main branch)
# Adjust 'only' or 'rules' as needed for your workflow
only:
- publish # Example: Run only on the main branch
# Job to deploy the built site using cloudron-surfer
deploy_site:
stage: deploy
image: node:18 # Use Node.js image for cloudron-surfer
needs: # Ensure 'build_site' job completes successfully first
- job: build_site
artifacts: true # Download artifacts from 'build_site'
# No need for GIT_SUBMODULE_STRATEGY here if GIT_STRATEGY is none or repo isn't needed
# If you need the repo source in this job, add GIT_SUBMODULE_STRATEGY here too.
variables:
GIT_STRATEGY: none # Optimization: Don't fetch repo source code for deploy job
before_script:
- echo "Installing cloudron-surfer..."
- npm install -g cloudron-surfer
script:
- 'echo "Deploying to: $SURFER_SERVER"'
# Verify artifact downloaded correctly
- echo "Contents of downloaded artifact:"
- ls -la public/ # Artifacts are extracted to the root of the job workspace
- echo "Uploading files to server using surfer put..."
- >-
surfer put
--token $SURFER_TOKEN
--server $SURFER_SERVER
public/* /
- echo "Deployment completed successfully"
# Define when this job runs (e.g., only on the main branch after build)
# Adjust 'only' or 'rules' as needed for your workflow
only:
- publish # Example: Run only on the main branch