adds gitlab ci
This commit is contained in:
68
.gitlab-ci.yml
Normal file
68
.gitlab-ci.yml
Normal 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
|
||||||
|
|
Reference in New Issue
Block a user