Compare commits
2 Commits
87a818c212
...
cc28018025
Author | SHA1 | Date | |
---|---|---|---|
cc28018025 | |||
00377ec276 |
|
@ -14,7 +14,7 @@ jobs:
|
|||
steps:
|
||||
- name: Import Secrets
|
||||
id: import-secrets
|
||||
uses: hashicorp/vault-action@v2
|
||||
uses: https://git.mthie.com/mthie/vault-action@v0
|
||||
with:
|
||||
url: ${{ env.VAULT_ADDR }}
|
||||
method: ${{ env.VAULT_AUTH_TYPE}}
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
# 0.1.3 / 2023-10-05
|
||||
|
||||
* download binary
|
||||
|
||||
# 0.1.2 / 2023-10-05
|
||||
|
||||
* test release
|
||||
|
|
|
@ -22,4 +22,4 @@ inputs:
|
|||
required: false
|
||||
runs:
|
||||
using: 'go'
|
||||
main: 'main.go'
|
||||
main: 'cmd/main.go'
|
||||
|
|
3
cmd/go.mod
Normal file
3
cmd/go.mod
Normal file
|
@ -0,0 +1,3 @@
|
|||
module git.mthie.com/mthie/vault-action/cmd
|
||||
|
||||
go 1.21.1
|
66
cmd/main.go
Normal file
66
cmd/main.go
Normal file
|
@ -0,0 +1,66 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"io"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
func main() {
|
||||
req, err := http.NewRequestWithContext(context.Background(), http.MethodGet, "https://git.mthie.com/api/v1/repos/mthie/vault-action/releases", nil)
|
||||
if err != nil {
|
||||
log.Panicf("error creating download request: %s", err)
|
||||
}
|
||||
|
||||
resp, err := http.DefaultClient.Do(req)
|
||||
if err != nil {
|
||||
log.Panicf("error getting download information: %s", err)
|
||||
}
|
||||
|
||||
type releaseInfo []struct {
|
||||
Assets []struct {
|
||||
URL string `json:"browser_download_url"`
|
||||
} `json:"assets"`
|
||||
}
|
||||
|
||||
downloadData := releaseInfo{}
|
||||
if err := json.NewDecoder(resp.Body).Decode(&downloadData); err != nil {
|
||||
log.Panicf("error decoding release information: %s", err)
|
||||
}
|
||||
|
||||
resp.Body.Close()
|
||||
|
||||
if len(downloadData) == 0 || len(downloadData[0].Assets) == 0 {
|
||||
log.Panic("no binary found")
|
||||
}
|
||||
|
||||
req, err = http.NewRequestWithContext(context.Background(), http.MethodGet, downloadData[0].Assets[0].URL, nil)
|
||||
if err != nil {
|
||||
log.Panicf("error creating download request: %s", err)
|
||||
}
|
||||
|
||||
resp, err = http.DefaultClient.Do(req)
|
||||
if err != nil {
|
||||
log.Panicf("error downloading binary: %s", err)
|
||||
}
|
||||
out, err := os.OpenFile("vault", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0755)
|
||||
if err != nil {
|
||||
log.Panicf("error creating file: %s", err)
|
||||
}
|
||||
|
||||
if _, err = io.Copy(out, resp.Body); err != nil {
|
||||
log.Panicf("error writing download data: %s", err)
|
||||
}
|
||||
|
||||
out.Close()
|
||||
resp.Body.Close()
|
||||
|
||||
cmd := exec.Command("vault")
|
||||
if err := cmd.Run(); err != nil {
|
||||
log.Panicf("error executing: %s", err)
|
||||
}
|
||||
}
|
8
cmd/tmp.txt
Normal file
8
cmd/tmp.txt
Normal file
|
@ -0,0 +1,8 @@
|
|||
DEPLOY_KEY<<_GitHubActionsFileCommandDelimeter_
|
||||
-----BEGIN EC PRIVATE KEY-----
|
||||
MIGkAgEBBDB7OBLldAAcXseFvIF4DOBfLdaiQtUUnGU8UddpoUeCCGe/lwsMQzns
|
||||
U0mOdkGAWwygBwYFK4EEACKhZANiAAQC8rWLLnxti4P4YpmAyb6xsD8Uv8ZKM7qJ
|
||||
N6Lh2JqttfFp03s5fSjWIibDjwCBGqSTBitFU1YcJvc9ewWUOxHrta782GChVgjl
|
||||
loezmUvX1oLCE0Koqd/U+fJnyC+LvJA=
|
||||
-----END EC PRIVATE KEY-----
|
||||
_GitHubActionsFileCommandDelimeter_
|
Loading…
Reference in New Issue
Block a user