# Example Woodpecker CI yaml file for a typical Hexo site pipeline: # Build step: it generates the files for the Hexo site build: image: node:12.22.1 commands: - git fetch origin # fetch reference to pages branch - npm install gulp -g - npm install hexo-cli -g - test -e package.json && npm install # TODO: figure out why Gulp fails with: Local gulp not found in /woodpecker/src/codeberg.org/fediverse/fediparty/themes/starter #- gulp build --cwd ./themes/starter - hexo generate - git checkout pages - find -maxdepth 1 ! -name .git ! -name .domains ! -name public ! -name . -exec rm -rf {} \; # This only copies non-hidden files; those whose names start with period WOULD NOT be copied - mv public/* . - rm -rf public when: branch: # Only run on these branches include: [ main ] # ...and never on pages branch (to ignore build triggered by CI commits) exclude: pages # Execute on every event except "pull_request" event: [push, tag, deployment] # Push step: it pushes the build output to "pages" branch push: image: appleboy/drone-git-push settings: branch: pages remote: git@codeberg.org:fediverse/fediparty.git # To work around "rejected...fetch first" error force: true commit: true commit_message: "Woodpecker build ${CI_COMMIT_SHA:0:7}" # Replace with your username for the commit author_name: "Woodpecker CI" # Replace with your email for the commit author_email: "nonexistent@example.com" ssh_key: from_secret: ssh_key when: # Only try to commit if previous step is successful status: success branch: # Only run on these branches include: [ main ] # ...and never on pages branch (to ignore build triggered by CI commits) exclude: pages # Execute on every event except "pull_request" event: [push, tag, deployment]