feat: deploy to other repo (#36)
* feat: Add EXTERNAL_REPOSITORY option * docs: Add section about EXTERNAL_REPOSITORY
This commit is contained in:
parent
ea833f5400
commit
37e4747275
23
README.md
23
README.md
|
@ -45,6 +45,7 @@ The above example step will deploy `./public` directory to `gh-pages` branch.
|
||||||
- [⭐️ `GITHUB_TOKEN`](#%EF%B8%8F-github_token)
|
- [⭐️ `GITHUB_TOKEN`](#%EF%B8%8F-github_token)
|
||||||
- [⭐️ Suppressing empty commits](#%EF%B8%8F-suppressing-empty-commits)
|
- [⭐️ Suppressing empty commits](#%EF%B8%8F-suppressing-empty-commits)
|
||||||
- [⭐️ Keeping existing files](#%EF%B8%8F-keeping-existing-files)
|
- [⭐️ Keeping existing files](#%EF%B8%8F-keeping-existing-files)
|
||||||
|
- [⭐️ Deploy to external repository](#%EF%B8%8F-deploy-to-external-repository)
|
||||||
- [Tips and FAQ](#tips-and-faq)
|
- [Tips and FAQ](#tips-and-faq)
|
||||||
- [⭐️ Use the latest and specific release](#%EF%B8%8F-use-the-latest-and-specific-release)
|
- [⭐️ Use the latest and specific release](#%EF%B8%8F-use-the-latest-and-specific-release)
|
||||||
- [⭐️ How to add `CNAME`](#%EF%B8%8F-how-to-add-cname)
|
- [⭐️ How to add `CNAME`](#%EF%B8%8F-how-to-add-cname)
|
||||||
|
@ -242,6 +243,28 @@ For example:
|
||||||
keepFiles: true
|
keepFiles: true
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### ⭐️ Deploy to external repository
|
||||||
|
|
||||||
|
By default, your files are published to the repository which is running this action.
|
||||||
|
If you want to publish to another repository on GitHub, set the environment variable `EXTERNAL_REPOSITORY` to `<username>/<external-repository>`.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: Deploy
|
||||||
|
uses: peaceiris/actions-gh-pages@v2.4.0
|
||||||
|
env:
|
||||||
|
ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
|
||||||
|
EXTERNAL_REPOSITORY: username/username.github.io
|
||||||
|
PUBLISH_BRANCH: master
|
||||||
|
PUBLISH_DIR: ./public
|
||||||
|
```
|
||||||
|
|
||||||
|
You can use `ACTIONS_DEPLOY_KEY` or `PERSONAL_TOKEN`.
|
||||||
|
When you use `ACTIONS_DEPLOY_KEY`, set your private key to the repository which includes this action and set your public key to your external repository.
|
||||||
|
|
||||||
|
Be careful, `GITHUB_TOKEN` has no permission to access to external repositories.
|
||||||
|
|
||||||
<div align="right">
|
<div align="right">
|
||||||
<a href="#table-of-contents">Back to TOC ☝️</a>
|
<a href="#table-of-contents">Back to TOC ☝️</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -17,6 +17,13 @@ function skip() {
|
||||||
}
|
}
|
||||||
|
|
||||||
# check values
|
# check values
|
||||||
|
if [ -n "${EXTERNAL_REPOSITORY}" ]; then
|
||||||
|
PUBLISH_REPOSITORY=${EXTERNAL_REPOSITORY}
|
||||||
|
else
|
||||||
|
PUBLISH_REPOSITORY=${GITHUB_REPOSITORY}
|
||||||
|
fi
|
||||||
|
print_info "Deploy to ${PUBLISH_REPOSITORY}"
|
||||||
|
|
||||||
if [ -n "${ACTIONS_DEPLOY_KEY}" ]; then
|
if [ -n "${ACTIONS_DEPLOY_KEY}" ]; then
|
||||||
|
|
||||||
print_info "setup with ACTIONS_DEPLOY_KEY"
|
print_info "setup with ACTIONS_DEPLOY_KEY"
|
||||||
|
@ -26,20 +33,25 @@ if [ -n "${ACTIONS_DEPLOY_KEY}" ]; then
|
||||||
echo "${ACTIONS_DEPLOY_KEY}" > /root/.ssh/id_rsa
|
echo "${ACTIONS_DEPLOY_KEY}" > /root/.ssh/id_rsa
|
||||||
chmod 400 /root/.ssh/id_rsa
|
chmod 400 /root/.ssh/id_rsa
|
||||||
|
|
||||||
remote_repo="git@github.com:${GITHUB_REPOSITORY}.git"
|
remote_repo="git@github.com:${PUBLISH_REPOSITORY}.git"
|
||||||
|
|
||||||
elif [ -n "${PERSONAL_TOKEN}" ]; then
|
elif [ -n "${PERSONAL_TOKEN}" ]; then
|
||||||
|
|
||||||
print_info "setup with PERSONAL_TOKEN"
|
print_info "setup with PERSONAL_TOKEN"
|
||||||
|
|
||||||
remote_repo="https://x-access-token:${PERSONAL_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"
|
remote_repo="https://x-access-token:${PERSONAL_TOKEN}@github.com/${PUBLISH_REPOSITORY}.git"
|
||||||
|
|
||||||
elif [ -n "${GITHUB_TOKEN}" ]; then
|
elif [ -n "${GITHUB_TOKEN}" ]; then
|
||||||
|
|
||||||
print_info "setup with GITHUB_TOKEN"
|
print_info "setup with GITHUB_TOKEN"
|
||||||
print_error "Do not use GITHUB_TOKEN, See #9"
|
print_error "Do not use GITHUB_TOKEN, See #9"
|
||||||
|
|
||||||
remote_repo="https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"
|
if [ -n "${EXTERNAL_REPOSITORY}" ]; then
|
||||||
|
print_error "can not use GITHUB_TOKEN to deploy to a external repository"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
remote_repo="https://x-access-token:${GITHUB_TOKEN}@github.com/${PUBLISH_REPOSITORY}.git"
|
||||||
|
|
||||||
else
|
else
|
||||||
print_error "not found ACTIONS_DEPLOY_KEY, PERSONAL_TOKEN, or GITHUB_TOKEN"
|
print_error "not found ACTIONS_DEPLOY_KEY, PERSONAL_TOKEN, or GITHUB_TOKEN"
|
||||||
|
|
Loading…
Reference in New Issue