Compare commits

..

No commits in common. "main" and "v1" have entirely different histories.
main ... v1

3 changed files with 8 additions and 66 deletions

View file

@ -1,26 +1,3 @@
# push-to-dokku # push-to-dokku
Action to push a remote repository to Dokku. Action to push to Dokku
## Usage
```
uses: https://lmika.dev/actions/push-to-dokku@v1.1
with:
app: dokku-app-name
host: dokku-host
private-key: SSH key
```
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.
This action will write the private key to the .ssh instance and will push to the remote repository as the `dokku`
user. Both the source and target branch must be `main`.

View file

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

View file

@ -67,27 +67,7 @@ func (s *Services) PushRepository() error {
return err return err
} }
sourceBranch := s.cfg.LocalBranch if err := runCmd("git", "push", "dokku", "main"); err != nil {
if sourceBranch == "" {
// Get the current ref
ref, err := runCmdExpectingOutput("git", "rev-parse", "HEAD")
if err != nil {
return err
}
sourceBranch = strings.TrimSpace(ref)
}
remoteBranch := s.cfg.RemoteBranch
if remoteBranch == "" {
remoteBranch = "main"
}
branchArg := sourceBranch
if sourceBranch != remoteBranch {
branchArg = fmt.Sprintf("%v:%v", sourceBranch, remoteBranch)
}
if err := runCmd("git", "push", "dokku", branchArg); err != nil {
return err return err
} }
@ -102,17 +82,6 @@ func runCmd(cmd ...string) error {
return e.Run() return e.Run()
} }
func runCmdExpectingOutput(cmd ...string) (string, error) {
log.Printf(" .. [exec] %v", strings.Join(cmd, " "))
e := exec.Command(cmd[0], cmd[1:]...)
e.Stderr = os.Stderr
res, err := e.Output()
if err != nil {
return "", err
}
return string(res), nil
}
func writeFile(path string, content string, mode os.FileMode) error { func writeFile(path string, content string, mode os.FileMode) error {
fullPath := os.ExpandEnv(path) fullPath := os.ExpandEnv(path)
log.Printf(" .. [file] %v (%v bytes)", fullPath, len(content)) log.Printf(" .. [file] %v (%v bytes)", fullPath, len(content))