Skip to content

Commit cd18679

Browse files
committed
add test
1 parent 2b3eb5e commit cd18679

File tree

1 file changed

+124
-0
lines changed

1 file changed

+124
-0
lines changed

tests/integration/actions_trigger_test.go

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,21 @@ import (
1010
"testing"
1111
"time"
1212

13+
"code.gitea.io/gitea/models/actions"
1314
actions_model "code.gitea.io/gitea/models/actions"
1415
"code.gitea.io/gitea/models/db"
16+
git_model "code.gitea.io/gitea/models/git"
1517
issues_model "code.gitea.io/gitea/models/issues"
1618
repo_model "code.gitea.io/gitea/models/repo"
1719
unit_model "code.gitea.io/gitea/models/unit"
1820
"code.gitea.io/gitea/models/unittest"
1921
user_model "code.gitea.io/gitea/models/user"
2022
actions_module "code.gitea.io/gitea/modules/actions"
2123
"code.gitea.io/gitea/modules/git"
24+
"code.gitea.io/gitea/modules/gitrepo"
2225
"code.gitea.io/gitea/modules/setting"
2326
pull_service "code.gitea.io/gitea/services/pull"
27+
release_service "code.gitea.io/gitea/services/release"
2428
repo_service "code.gitea.io/gitea/services/repository"
2529
files_service "code.gitea.io/gitea/services/repository/files"
2630

@@ -285,3 +289,123 @@ func TestSkipCI(t *testing.T) {
285289
assert.Equal(t, 1, unittest.GetCount(t, &actions_model.ActionRun{RepoID: repo.ID}))
286290
})
287291
}
292+
293+
func TestCreateDeleteRefEvent(t *testing.T) {
294+
onGiteaRun(t, func(t *testing.T, u *url.URL) {
295+
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
296+
297+
// create the repo
298+
repo, err := repo_service.CreateRepository(db.DefaultContext, user2, user2, repo_service.CreateRepoOptions{
299+
Name: "create-delete-ref-event",
300+
Description: "test create delete ref ci event",
301+
AutoInit: true,
302+
Gitignores: "Go",
303+
License: "MIT",
304+
Readme: "Default",
305+
DefaultBranch: "main",
306+
IsPrivate: false,
307+
})
308+
assert.NoError(t, err)
309+
assert.NotEmpty(t, repo)
310+
311+
// enable actions
312+
err = repo_service.UpdateRepositoryUnits(db.DefaultContext, repo, []repo_model.RepoUnit{{
313+
RepoID: repo.ID,
314+
Type: unit_model.TypeActions,
315+
}}, nil)
316+
assert.NoError(t, err)
317+
318+
// add workflow file to the repo
319+
addWorkflowToBaseResp, err := files_service.ChangeRepoFiles(git.DefaultContext, repo, user2, &files_service.ChangeRepoFilesOptions{
320+
Files: []*files_service.ChangeRepoFile{
321+
{
322+
Operation: "create",
323+
TreePath: ".gitea/workflows/createdelete.yml",
324+
ContentReader: strings.NewReader("name: test\non:\n [create,delete]\njobs:\n test:\n runs-on: ubuntu-latest\n steps:\n - run: echo helloworld\n"),
325+
},
326+
},
327+
Message: "add workflow",
328+
OldBranch: "main",
329+
NewBranch: "main",
330+
Author: &files_service.IdentityOptions{
331+
Name: user2.Name,
332+
Email: user2.Email,
333+
},
334+
Committer: &files_service.IdentityOptions{
335+
Name: user2.Name,
336+
Email: user2.Email,
337+
},
338+
Dates: &files_service.CommitDateOptions{
339+
Author: time.Now(),
340+
Committer: time.Now(),
341+
},
342+
})
343+
assert.NoError(t, err)
344+
assert.NotEmpty(t, addWorkflowToBaseResp)
345+
346+
// Get the commit ID of the default branch
347+
gitRepo, err := gitrepo.OpenRepository(git.DefaultContext, repo)
348+
assert.NoError(t, err)
349+
defer gitRepo.Close()
350+
branch, err := git_model.GetBranch(db.DefaultContext, repo.ID, repo.DefaultBranch)
351+
assert.NoError(t, err)
352+
353+
// create a branch
354+
err = repo_service.CreateNewBranchFromCommit(db.DefaultContext, user2, repo, gitRepo, branch.CommitID, "test-create-branch")
355+
assert.NoError(t, err)
356+
run := unittest.AssertExistsAndLoadBean(t, &actions.ActionRun{
357+
Title: "add workflow",
358+
Index: 1,
359+
RepoID: repo.ID,
360+
Event: "create",
361+
Ref: "refs/heads/test-create-branch",
362+
WorkflowID: "createdelete.yml",
363+
CommitSHA: branch.CommitID,
364+
})
365+
assert.NotNil(t, run)
366+
367+
// create a tag
368+
err = release_service.CreateNewTag(db.DefaultContext, user2, repo, branch.CommitID, "test-create-tag", "test create tag event")
369+
assert.NoError(t, err)
370+
run = unittest.AssertExistsAndLoadBean(t, &actions.ActionRun{
371+
Title: "add workflow",
372+
Index: 2,
373+
RepoID: repo.ID,
374+
Event: "create",
375+
Ref: "refs/tags/test-create-tag",
376+
WorkflowID: "createdelete.yml",
377+
CommitSHA: branch.CommitID,
378+
})
379+
assert.NotNil(t, run)
380+
381+
// delete the branch
382+
err = repo_service.DeleteBranch(db.DefaultContext, user2, repo, gitRepo, "test-create-branch")
383+
assert.NoError(t, err)
384+
run = unittest.AssertExistsAndLoadBean(t, &actions.ActionRun{
385+
Title: "add workflow",
386+
Index: 3,
387+
RepoID: repo.ID,
388+
Event: "delete",
389+
Ref: "main",
390+
WorkflowID: "createdelete.yml",
391+
CommitSHA: branch.CommitID,
392+
})
393+
assert.NotNil(t, run)
394+
395+
// delete the tag
396+
tag, err := repo_model.GetRelease(db.DefaultContext, repo.ID, "test-create-tag")
397+
assert.NoError(t, err)
398+
err = release_service.DeleteReleaseByID(db.DefaultContext, repo, tag, user2, true)
399+
assert.NoError(t, err)
400+
run = unittest.AssertExistsAndLoadBean(t, &actions.ActionRun{
401+
Title: "add workflow",
402+
Index: 4,
403+
RepoID: repo.ID,
404+
Event: "delete",
405+
Ref: "main",
406+
WorkflowID: "createdelete.yml",
407+
CommitSHA: branch.CommitID,
408+
})
409+
assert.NotNil(t, run)
410+
})
411+
}

0 commit comments

Comments
 (0)