Compare commits

..

10 Commits

Author SHA1 Message Date
Christoph J. Scherr 872338c83f Merge branch 'master' of https://git.cscherr.de/PlexSheep/autocrate
cargo devel CI / cargo CI (push) Successful in 2m28s Details
2024-04-26 14:24:29 +02:00
Christoph J. Scherr 411ded1395 more print error 2024-04-26 14:24:23 +02:00
PlexSheep 97b36966d5 automatic cargo CI changes 2024-04-26 08:16:07 +00:00
Christoph J. Scherr e7ab89f050 better error display
cargo devel CI / cargo CI (push) Successful in 2m23s Details
2024-04-26 10:13:47 +02:00
Christoph J. Scherr ca3d1b7e82 Merge branch 'devel'
cargo devel CI / cargo CI (push) Successful in 2m13s Details
2024-04-26 10:07:30 +02:00
Christoph J. Scherr 56d6a50142 Merge branch 'devel'
cargo devel CI / cargo CI (push) Has been cancelled Details
2024-04-26 10:05:58 +02:00
Christoph J. Scherr 5bb4072e24 remodeling our structure with git a bit 2024-04-26 10:03:52 +02:00
PlexSheep 9aa9c8e07b automatic cargo CI changes 2024-04-26 06:58:04 +00:00
Christoph J. Scherr e80b68f1c4 Merge branch 'devel'
cargo devel CI / cargo CI (push) Successful in 3m4s Details
2024-04-26 08:55:01 +02:00
Christoph J. Scherr 378b269fa0 release to forgejo works in an early state
cargo devel CI / cargo CI (push) Failing after 1m41s Details
2024-04-25 15:46:37 +02:00
6 changed files with 47 additions and 27 deletions

View File

@ -17,14 +17,14 @@ api:
type: github
repository: autocrate
auth:
user: plexsheep
user: PlexSheep
pass:
!env TOKEN_GH
# cscherr:
# type: forgejo
# endpoint: https://git.cscherr.de
# repository: autocrate
# auth:
# user: PlexSheep
# pass:
# !env TOKEN_CSCHERR
cscherr:
type: forgejo
endpoint: https://git.cscherr.de
repository: autocrate
auth:
user: PlexSheep
pass:
!env TOKEN_CSCHERR

View File

@ -37,7 +37,7 @@ jobs:
- name: cargo fmt
run: cargo fmt --all
- name: cargo test
run: cargo test --all-features --all-targets --workspace && cargo test --all-features --workspace --doc
run: cargo test --all-features --all-targets --workspace
- name: commit back to repository
uses: https://github.com/stefanzweifel/git-auto-commit-action@v5
with:

View File

@ -38,7 +38,7 @@ jobs:
- name: cargo fmt
run: cargo fmt --all
- name: cargo test
run: cargo test --all-features --all-targets --workspace && cargo test --all-features --workspace --doc
run: cargo test --all-features --all-targets --workspace
- name: commit back to repository
uses: stefanzweifel/git-auto-commit-action@v5
with:

View File

@ -8,7 +8,7 @@ use libpt::log::{debug, error, trace};
use serde::{Deserialize, Serialize};
use url::Url;
use crate::{error::*, git};
use crate::error::*;
pub mod cli;
pub mod packages;
@ -295,7 +295,14 @@ impl Debug for Config {
impl Config {
pub fn load(cli: &Cli) -> Result<Self> {
let repo = git::get_repo()?;
let repo = match git2::Repository::open_from_env() {
Ok(repo) => repo,
Err(_err) => {
let err = ConfigError::GitRepoNotFound.into();
error!("{err}");
return Err(err);
}
};
let mut path = repo.path().to_path_buf();
path.pop(); // we want the real root, not the `.git` dir

View File

@ -1,3 +1,5 @@
use std::error::Error as _;
use autocrate::{
changelog::*,
config::{
@ -9,25 +11,37 @@ use autocrate::{
release::release,
serverapi::ApiCollection,
};
use libpt::log::{debug, error, trace};
use libpt::log::{debug, error};
#[tokio::main]
async fn main() -> Result<()> {
let cli = Cli::cli_parse();
let cfg = Config::load(&cli)?;
match cli.command {
let status: Option<Error> = match cli.command {
Commands::Changelog { .. } => {
println!("{}", Changelog::build(&cfg)?);
let chlog = Changelog::build(&cfg);
if chlog.is_ok() {
println!("{}", chlog.unwrap());
None
} else {
Some(chlog.unwrap_err())
}
}
Commands::Release { .. } => {
// TODO: check if repo is dirty and create a commit with a given option
let mut apis = ApiCollection::build(&cfg).await?;
release(&cfg, &mut apis).await?;
match release(&cfg, &mut apis).await {
Ok(_) => None,
Err(err) => Some(err),
}
}
Commands::Publish { .. } => {
// TODO: check if repo is dirty and create a commit with a given option
publish(&cfg).await?;
match publish(&cfg).await {
Ok(_) => None,
Err(err) => Some(err),
}
}
Commands::Version {} => {
// TODO: version bump
@ -42,7 +56,7 @@ async fn main() -> Result<()> {
};
if let Some(err) = status {
error!("{err}");
trace!("{:#?}", err.source());
debug!("{:#?}", err.source());
}
Ok(())
}

View File

@ -1,5 +1,4 @@
use async_trait::async_trait;
use libpt::log::debug;
use octocrab;
use super::{PublishContext, ReleaseContext, ServerApi};
@ -22,18 +21,18 @@ impl Github {
#[async_trait]
impl ServerApi for Github {
async fn push_release(&mut self, rc: ReleaseContext) -> Result<()> {
debug!("release context: {rc:#?}");
let t1 = octocrab::instance();
let t2 = t1.repos(rc.username, rc.repository);
let t = t2.releases();
let req = t
let _response = octocrab::instance()
.repos(rc.username, rc.repository)
.releases()
.create(&rc.tag)
.target_commitish(&rc.commit_sig)
.name(&rc.tag)
.body(&rc.text)
.draft(rc.draft)
.prerelease(rc.prerelease);
req.send().await.map_err(ServerApiError::from)?;
.prerelease(rc.prerelease)
.send()
.await
.map_err(ServerApiError::from)?;
Ok(())
}
async fn push_release_artifact(&mut self, _rc: ReleaseContext) -> Result<()> {