summaryrefslogtreecommitdiffstats
path: root/tests/ci_test.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ci_test.rs')
-rw-r--r--tests/ci_test.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/ci_test.rs b/tests/ci_test.rs
index 876b766..2aee274 100644
--- a/tests/ci_test.rs
+++ b/tests/ci_test.rs
@@ -125,6 +125,36 @@ async fn repo(api: &forgejo_api::Forgejo) -> eyre::Result<()> {
api.merge_pr("TestingAdmin", "test", pr.number, merge_opt).await.wrap_err_with(|| eyre!("couldn't merge pr {}", pr.number))?;
let is_merged = api.is_merged("TestingAdmin", "test", pr.number).await.wrap_err_with(|| eyre!("couldn't find merged pr {}", pr.number))?;
ensure!(is_merged, "pr should be merged");
+ let _ = git().args(["fetch"]).status()?;
+ let _ = git().args(["pull"]).status()?;
+
+ let tag_opt = forgejo_api::CreateTagOption {
+ message: Some("This is a tag!".into()),
+ tag_name: "v1.0".into(),
+ target: None,
+ };
+ api.create_tag("TestingAdmin", "test", tag_opt).await.wrap_err("failed to create tag")?;
+
+ let release_opt = forgejo_api::CreateReleaseOption {
+ body: "This is a release!".into(),
+ draft: true,
+ name: "v1.0".into(),
+ prerelease: false,
+ tag_name: "v1.0".into(),
+ target_commitish: None,
+ };
+ let release = api.create_release("TestingAdmin", "test", release_opt).await.wrap_err("failed to create release")?;
+
+ let release_by_tag = api.get_release_by_tag("TestingAdmin", "test", "v1.0").await.wrap_err("failed to find release")?;
+ let release_latest = api.latest_release("TestingAdmin", "test").await.wrap_err("failed to find latest release")?;
+ ensure!(dbg!(release_by_tag) == dbg!(release_latest), "releases not equal");
+
+ let attachment = api.create_release_attachment("TestingAdmin", "test", release.id, "test.txt", b"This is a file!").await.wrap_err("failed to create release attachment")?;
+ api.delete_release_attachment("TestingAdmin", "test", release.id, attachment.id).await.wrap_err("failed to deleted attachment")?;
+
+ api.delete_release("TestingAdmin", "test", release.id).await.wrap_err("failed to delete release")?;
+
+ api.delete_tag("TestingAdmin", "test", "v1.0").await.wrap_err("failed to delete release")?;
Ok(())
}