pipeline: # Build step: generates the files for Hexo site build: image: node:12.22.1 commands: - npm install gulp -g - npm install hexo-cli -g - test -e package.json && npm install - gulp build --cwd ./themes/starter - hexo generate - 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: include: [ main ] event: [push, deployment] commit: image: alpine commands: - apk add git # configure git - git config --global user.email "nonexistent@example.com" - git config --global user.name "Codeberg CI" - git checkout -b pages # deploy changes - git add -A - git commit -m "Woodpecker build ${CI_COMMIT_SHA}" # Push step: it pushes the build output to "pages" branch push: image: appleboy/drone-git-push secrets: [ ssh_key ] settings: branch: pages remote: git@codeberg.org:fediverse/fediparty.git # To work around "rejected...fetch first" error force: true 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]