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
Action to push a remote repository 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`.
Action to push to Dokku

View file

@ -3,19 +3,15 @@ package main
import "os"
type config struct {
HostName string
AppName string
PrivateKey string
LocalBranch string
RemoteBranch string
HostName string
AppName string
PrivateKey string
}
func readConfig() config {
return 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_TARGET-BRANCH"),
HostName: os.Getenv("INPUT_HOST"),
AppName: os.Getenv("INPUT_APP"),
PrivateKey: os.Getenv("INPUT_PRIVATE-KEY"),
}
}

View file

@ -67,27 +67,7 @@ func (s *Services) PushRepository() error {
return err
}
sourceBranch := s.cfg.LocalBranch
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 {
if err := runCmd("git", "push", "dokku", "main"); err != nil {
return err
}
@ -102,17 +82,6 @@ func runCmd(cmd ...string) error {
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 {
fullPath := os.ExpandEnv(path)
log.Printf(" .. [file] %v (%v bytes)", fullPath, len(content))