Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support to delete job history #519

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/int-test-darwin.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ jobs:
name: Build
runs-on: macOS-latest
steps:

- name: Set up Go 1.15
uses: actions/[email protected]
with:
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/int-test-ubuntu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ jobs:
name: Build
runs-on: ubuntu-20.04
steps:

- name: Set up Go 1.15
uses: actions/[email protected]
with:
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/pull-request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,18 @@ jobs:
uses: Jerome1337/[email protected]
with:
golint-path: util/...
Security:
name: Security
runs-on: ubuntu-latest
env:
GO111MODULE: on
steps:
- name: Checkout Source
uses: actions/checkout@v2
- name: Run Gosec Security Scanner
uses: securego/gosec@master
with:
args: '-exclude=G402,G204,G304,G110 app/cmd/common'

# - name: SonarCloud Scan
# uses: LinuxSuRen/sonarcloud-github-action@master
Expand Down
2 changes: 1 addition & 1 deletion app/cmd/common/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ func (b *BatchOption) Confirm(message string) bool {
prompt = &survey.Confirm{
Message: message,
}
survey.AskOne(prompt, &confirm, survey.WithStdio(b.Stdio.In, b.Stdio.Out, b.Stdio.Err))
_ = survey.AskOne(prompt, &confirm, survey.WithStdio(b.Stdio.In, b.Stdio.Out, b.Stdio.Err))
return confirm
}

Expand Down
9 changes: 8 additions & 1 deletion app/cmd/job_history.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
type JobHistoryOption struct {
cobra_ext.OutputOption

Delete int
RoundTripper http.RoundTripper
}

Expand All @@ -21,10 +22,11 @@ var jobHistoryOption JobHistoryOption
func init() {
jobCmd.AddCommand(jobHistoryCmd)
jobHistoryOption.SetFlagWithHeaders(jobHistoryCmd, "DisplayName,Building,Result")
jobHistoryCmd.Flags().IntVarP(&jobHistoryOption.Delete, "delete", "d", -1, "Delete a history item")
}

var jobHistoryCmd = &cobra.Command{
Use: "history <jobName>",
Use: "history",
Short: i18n.T("Print the history of job in your Jenkins"),
Long: i18n.T(`Print the history of job in your Jenkins`),
Args: cobra.MinimumNArgs(1),
Expand All @@ -38,6 +40,11 @@ var jobHistoryCmd = &cobra.Command{
}
getCurrentJenkinsAndClientOrDie(&(jClient.JenkinsCore))

if jobHistoryOption.Delete != -1 {
err = jClient.DeleteHistory(jobName, jobHistoryOption.Delete)
return
}

var builds []*client.JobBuild
builds, err = jClient.GetHistory(jobName)
if err == nil {
Expand Down
2 changes: 1 addition & 1 deletion app/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ func init() {

rootCmd.SetOut(os.Stdout)

goPlugin.LoadPlugins(rootCmd)
goPlugin.LoadPlugins(rootCmd, "jenkins-zh", "jcli-plugins")

if rootOptions.GetGitHubClient() == nil {
rootOptions.SetGitHubClient(github.NewClient(nil))
Expand Down
8 changes: 8 additions & 0 deletions client/job.go
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,14 @@ func (q *JobClient) GetHistory(name string) (builds []*JobBuild, err error) {
return
}

// DeleteHistory returns the build history of a job
func (q *JobClient) DeleteHistory(jobName string, num int) (err error) {
path := ParseJobPath(jobName)
api := fmt.Sprintf("%s/%d/doDelete", path, num)
_, err = q.RequestWithoutData(http.MethodPost, api, nil, nil, 200)
return
}

// Log get the log of a job
func (q *JobClient) Log(jobName string, history int, start int64) (jobLog JobLog, err error) {
path := ParseJobPath(jobName)
Expand Down
20 changes: 20 additions & 0 deletions e2e/job_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@ package e2e

import (
"fmt"
"math"
"math/rand"
"os/exec"
"testing"
"time"

"github.com/stretchr/testify/assert"
)
Expand All @@ -12,7 +15,24 @@ func TestListJobType(t *testing.T) {
cmd := exec.Command("jcli", "job", "type", "--url", GetJenkinsURL())
fmt.Println(cmd.String())
data, err := cmd.CombinedOutput()
fmt.Println(string(data))
assert.Nil(t, err)

rand.Seed(math.MaxInt8)
name := fmt.Sprintf("%d", rand.Int())
cmd = exec.Command("jcli", "job", "create", name, "--type", "hudson.model.FreeStyleProject", "--url", GetJenkinsURL(), "--logger-level", "debug")
data, err = cmd.CombinedOutput()
fmt.Println(string(data))
assert.Nil(t, err)

cmd = exec.Command("jcli", "job", "build", name, "-b", "--url", GetJenkinsURL())
data, err = cmd.CombinedOutput()
fmt.Println(string(data))
assert.Nil(t, err)
time.Sleep(time.Second * 6)

cmd = exec.Command("jcli", "job", "history", name, "-d", "1", "--url", GetJenkinsURL())
data, err = cmd.CombinedOutput()
fmt.Println(string(data))
assert.Nil(t, err)
}
2 changes: 1 addition & 1 deletion e2e/setup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ func TestMain(m *testing.M) {
jenkinsURL = fmt.Sprintf("http://localhost:%d", port)

cmd := exec.Command("jcli", "center", "start", "--random-web-dir", "--setup-wizard=false",
"--port", fmt.Sprintf("%d", port), "--version", version, "--thread", "10")
"--port", fmt.Sprintf("%d", port), "--version", version, "--thread", "10", "--clean-home")
fmt.Println(cmd.String())
cmdStderrPipe, _ := cmd.StderrPipe()
if err = cmd.Start(); err != nil {
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ require (
github.com/jenkins-zh/jenkins-formulas v0.0.5
github.com/linuxsuren/cobra-extension v0.0.10
github.com/linuxsuren/go-cli-alias v0.0.4
github.com/linuxsuren/go-cli-plugin v0.0.3
github.com/linuxsuren/go-cli-plugin v0.0.4
github.com/linuxsuren/http-downloader v0.0.10
github.com/magiconair/properties v1.8.4
github.com/mitchellh/go-homedir v1.1.0
Expand Down
6 changes: 2 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,6 @@ github.com/kr/pty v1.1.8 h1:AkaSdXYQOWeaO3neb8EM634ahkXXe3jYbVh/F9lq+GI=
github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/linuxsuren/cobra-extension v0.0.1 h1:e288zsm1iWUaAOjfiw42hiWJsrrXZnJ0vKApWPyTfkQ=
github.com/linuxsuren/cobra-extension v0.0.1/go.mod h1:UqHi31q7Dj+46nzcVWNZz5Z1JcHBJcmCyPAZRoM8LXo=
github.com/linuxsuren/cobra-extension v0.0.3 h1:06tdJNYM4Wcx6WZPDnz/WLuP2jVdVZ9RLuwlUHIblmg=
github.com/linuxsuren/cobra-extension v0.0.3/go.mod h1:UqHi31q7Dj+46nzcVWNZz5Z1JcHBJcmCyPAZRoM8LXo=
github.com/linuxsuren/cobra-extension v0.0.6/go.mod h1:qcEJv7BbL0UpK6MbrTESP/nKf1+z1wQdMAnE1NBl3QQ=
Expand All @@ -200,8 +198,8 @@ github.com/linuxsuren/cobra-extension v0.0.10/go.mod h1:nDsXgvm0lSWVV+byAEfwhIGF
github.com/linuxsuren/go-cli-alias v0.0.4 h1:+otarDOeSZzzbTCr9CllAOQCQNpaf/HI41iDvWWUo/w=
github.com/linuxsuren/go-cli-alias v0.0.4/go.mod h1:dfwOx8H0iVpdS9gtLC80GCC4cvDvzWejxjxXn7sFWUs=
github.com/linuxsuren/go-cli-plugin v0.0.1/go.mod h1:uyO09KK8otYfDV5LVTfcWX2UbAi3kEz3PrkdfIxnDlg=
github.com/linuxsuren/go-cli-plugin v0.0.3 h1:thb6d4I6CaPOKxGBFsltBEsQYGkHGnJCZXjjYPpzc9g=
github.com/linuxsuren/go-cli-plugin v0.0.3/go.mod h1:42kKvBOmdnVjxU73XF8nllAat1YiVrOE176Dn9qeTSg=
github.com/linuxsuren/go-cli-plugin v0.0.4 h1:73q0OOVJh9+9kt9GgAb9hUFIH2ZvmFODpO2QLN9rnnY=
github.com/linuxsuren/go-cli-plugin v0.0.4/go.mod h1:N0fu8YFzVKucXgytFATEB3icJgZg3iTN7AUw0qsstxw=
github.com/linuxsuren/http-downloader v0.0.2-0.20201207132639-19888a6beaec h1:N6xw+W4IvgOV0cmhE7iUWKHNZqMUXlT3in+1ORmqIGo=
github.com/linuxsuren/http-downloader v0.0.2-0.20201207132639-19888a6beaec/go.mod h1:zRZY9FCDBuYNDxbI2Ny5suasZsMk7J6q9ecQ3V3PIqI=
github.com/linuxsuren/http-downloader v0.0.6/go.mod h1:xxgh2OE7WGL9TwDE9L8Gh7Lqq9fFPuHbh5tofUitEfE=
Expand Down