diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..f895443 --- /dev/null +++ b/content/_index.md @@ -0,0 +1,89 @@ +--- +title: wp-git-action +--- + +[![Build Status](https://img.shields.io/wp/build/thegeeklab/wp-git-action?logo=wp&server=https%3A%2F%2Fwp.thegeeklab.de)](https://wp.thegeeklab.de/thegeeklab/wp-git-action) +[![Docker Hub](https://img.shields.io/badge/dockerhub-latest-blue.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/thegeeklab/wp-git-action) +[![Quay.io](https://img.shields.io/badge/quay-latest-blue.svg?logo=docker&logoColor=white)](https://quay.io/repository/thegeeklab/wp-git-action) +[![GitHub contributors](https://img.shields.io/github/contributors/thegeeklab/wp-git-action)](https://github.com/thegeeklab/wp-git-action/graphs/contributors) +[![Source: GitHub](https://img.shields.io/badge/source-github-blue.svg?logo=github&logoColor=white)](https://github.com/thegeeklab/wp-git-action) +[![License: MIT](https://img.shields.io/github/license/thegeeklab/wp-git-action)](https://github.com/thegeeklab/wp-git-action/blob/main/LICENSE) + +Woodpecker CI plugin to execute git actions. + + + +{{< toc >}} + + + +## Usage + +```YAML +kind: pipeline +name: default + +steps: + - name: commit changelog + image: thegeeklab/wp-git-action + settings: + action: + - commit + - push + netrc_password: ghp_3LbMg9Kncpdkhjp3bh3dMnKNXLjVMTsXk4sM + author_name: octobot + author_email: octobot@example.com + message: "[skip ci] update changelog" +``` + +### Parameters + + + +{{< propertylist name=wp-git-action.data sort=name >}} + + + +### Examples + +#### Publish GitHub pages + +The plugin can be used to publish GitHub pages to the pages branch. Remember that the `pages` action cannot be combined with other actions. + +```YAML +kind: pipeline +name: default + +steps: + - name: publish + image: thegeeklab/wp-git-action + settings: + action: + - pages + author_email: bot@thegeeklab.de + author_name: thegeeklab-bot + message: "update pages" + branch: gh-pages + pages_directory: docs/ + netrc_password: ghp_3LbMg9Kncpdkhjp3bh3dMnKNXLjVMTsXk4sM +``` + +## Build + +Build the binary with the following command: + +```Shell +make build +``` + +Build the Container image with the following command: + +```Shell +docker build --file Containerfile.multiarch --tag thegeeklab/wp-git-action . +``` + +## Test + +```Shell + +``` diff --git a/data/data.yaml b/data/data.yaml new file mode 100644 index 0000000..986bddd --- /dev/null +++ b/data/data.yaml @@ -0,0 +1,98 @@ +--- +properties: + - name: action + description: | + Git actions to be executed. Supported actions: `clone | commit | push | pages`. Specified actions are executed in the specified order + + - **clone:** Clones the repository in `remote_url` and checks out the `branch` to `path`. + - **commit:** Adds a commit to the default repository or the repository in `remote_url`. + - **push:** Pushes all commits to the default repository or the repository set in `remote_url`. + - **pages:** The `pages` action is a special action that cannot be combined with other actions. It is intended for use for + GitHub pages. It synchronizes the contents of `pages_directory` with the target `branch` using `rsync` and pushes the changes automatically. + required: true + type: list + + - name: author_name + description: Git author name. + required: true + type: string + + - name: author_email + description: Git author Email Address. + required: true + type: string + + - name: netrc_machine + description: Netrc remote machine name. + defaultvalue: github.com + type: string + + - name: netrc_username + description: Netrc login user on the remote machine. + defaultvalue: token + type: string + + - name: netrc_password + description: Netrc login password on the remote machine. + type: string + + - name: ssh_key + description: SSH private key for the remote repository. + type: string + + - name: remote_url + description: URL of the remote repository. + type: string + + - name: branch + description: Name of the git branch. + defaultvalue: main + type: string + + - name: path + description: Path to clone the git repository. + type: string + + - name: message + description: Commit message. + defaultvalue: "[skip ci] commit dirty state" + type: string + + - name: force + description: Enable force push to remote repository. + defaultvalue: false + type: bool + + - name: followtags + description: Push all the `refs` that would be pushed without this option, and also push annotated tags in `refs/tags` that are missing from the remote. + defaultvalue: false + type: bool + + - name: insecure_ssl_verify + description: Configure git SSL verification of the remote machine. + defaultvalue: false + type: bool + + - name: empty_commit + description: Allow empty commits. Usually recording a commit that has the exact same tree as its sole parent commit is a mistake, and those commits are not allowed by default. + defaultvalue: false + type: bool + + - name: no_verify + description: Bypass the pre-commit and commit-msg hooks. + defaultvalue: false + type: bool + + - name: pages_directory + description: Source directory to be synchronized with the pages `branch`. + defaultvalue: docs/ + type: string + + - name: pages_exclude + description: Files or directories to exclude from the rsync command. + type: list + + - name: pages_delete + description: When set to `true`, the `--delete` flag is added to the rsync command to remove files from the `branch` that do not exist in the `pages_directory` either. + defaultvalue: true + type: bool