Added option to configure the source and target branch

This commit is contained in:
Leon Mika 2025-01-02 11:48:27 +11:00
parent 7999a86f58
commit ec773bc57d
3 changed files with 28 additions and 8 deletions

View file

@ -5,7 +5,7 @@ Action to push a remote repository to Dokku.
## Usage
```
uses: https://lmika.dev/actions/push-to-dokku@v1
uses: https://lmika.dev/actions/push-to-dokku@v1.1
with:
app: dokku-app-name
host: dokku-host
@ -17,6 +17,8 @@ Parameters are:
- `host`: hostname of the Dokku instance to push the application to.
- `app`: the Dokku application name.
- `private-key`: the private SSH key
- `source-branch`: the code branch to push (default = `main`)
- `target-branch`: the Dokku branch to push to (default = same as source-branch)
This action requires Go 1.22.4 or later.

View file

@ -6,6 +6,8 @@ type config struct {
HostName string
AppName string
PrivateKey string
LocalBranch string
RemoteBranch string
}
func readConfig() config {
@ -13,5 +15,7 @@ func readConfig() config {
HostName: os.Getenv("INPUT_HOST"),
AppName: os.Getenv("INPUT_APP"),
PrivateKey: os.Getenv("INPUT_PRIVATE-KEY"),
LocalBranch: os.Getenv("INPUT_SOURCE-BRANCH"),
RemoteBranch: os.Getenv("INPUT_REMOTE-BRANCH"),
}
}

View file

@ -67,7 +67,21 @@ func (s *Services) PushRepository() error {
return err
}
if err := runCmd("git", "push", "dokku", "main"); err != nil {
sourceBranch := s.cfg.LocalBranch
if sourceBranch == "" {
sourceBranch = "main"
}
remoteBranch := s.cfg.RemoteBranch
if remoteBranch == "" {
remoteBranch = sourceBranch
}
branchArg := sourceBranch
if sourceBranch != remoteBranch {
branchArg = fmt.Sprintf("%v:%v", sourceBranch, remoteBranch)
}
if err := runCmd("git", "push", "dokku", branchArg); err != nil {
return err
}