Compare commits

..
Author SHA1 Message Date
phoenix 08e50b132f Adding Debug trait to Error
labyrinth release Tagging / release (pull_request) Successful in 4m43s
2026-08-06 12:50:19 -04:00
phoenix 944b6f9c75 Cleanup
labyrinth release Tagging / release (pull_request) Successful in 2m6s
2026-08-06 12:45:32 -04:00
phoenix 0f5730f242 Making it more flexible 2026-08-06 12:45:24 -04:00
phoenix dd5ec8a5be ci: Added release worklfow 2026-08-06 12:45:14 -04:00
3 changed files with 82 additions and 1 deletions
+58
View File
@@ -0,0 +1,58 @@
name: labyrinth release Tagging
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
release:
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0 # Important for git describe --tags
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.97
components: cargo
- uses: Swatinem/rust-cache@v2
- name: Extract Version from Cargo.toml
id: version
run: |
VERSION=$(grep '^version = "' Cargo.toml | sed -E 's/version = "([^"]+)"/\1/')
PROJECT_COMMIT_HASH=$(git rev-parse HEAD | cut -c 1-10)
BRANCH_REF="${{ gitea.ref }}"
BRANCH_NAME=$(echo "$BRANCH_REF" | cut -d '/' -f 3)
PROJECT_TAG_RELEASE="v$VERSION-$BRANCH_NAME-$PROJECT_COMMIT_HASH-928"
echo "::set-output name=project_tag_release::$PROJECT_TAG_RELEASE"
echo "Version: $VERSION"
echo "Hash: $PROJECT_COMMIT_HASH"
echo "Branh ref: $BRANCH_REF"
echo "Branch: $BRANCH_NAME"
echo "Tag Release: $PROJECT_TAG_RELEASE"
- name: Print version
id: Version
run: |
echo "Printing version"
echo "Version: ${{ steps.version.outputs.project_tag_release }}"
- name: Create GitHub Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.version.outputs.project_tag_release }}
release_name: Release ${{ steps.version.outputs.project_tag_release }}
body: |
Release of version ${{ steps.version.outputs.project_tag_release }}
+3
View File
@@ -1,5 +1,8 @@
#[derive(Default)]
pub struct Config { pub struct Config {
pub url: String, pub url: String,
pub bucket: String, pub bucket: String,
pub region: String, pub region: String,
pub access_key_id: String,
pub secret_key: String,
} }
+21 -1
View File
@@ -1,5 +1,7 @@
pub mod config; pub mod config;
use aws_sdk_s3::config::{Credentials, Region};
#[derive(Default)] #[derive(Default)]
pub struct Data { pub struct Data {
pub filepath: String, pub filepath: String,
@@ -14,6 +16,7 @@ pub async fn load_data(filepath: &str) -> Result<Vec<u8>, std::io::Error> {
tokio::fs::read(filepath).await tokio::fs::read(filepath).await
} }
#[derive(Debug)]
pub enum Error { pub enum Error {
Info(String), Info(String),
SError(aws_sdk_s3::operation::put_object::PutObjectError), SError(aws_sdk_s3::operation::put_object::PutObjectError),
@@ -25,7 +28,24 @@ impl Labyrinth {
file_key: &str, file_key: &str,
data: &Data, data: &Data,
) -> Result<aws_sdk_s3::operation::put_object::PutObjectOutput, Error> { ) -> Result<aws_sdk_s3::operation::put_object::PutObjectOutput, Error> {
let config = aws_config::load_from_env().await; // 1. Create credentials
let credentials = Credentials::new(
self.config.access_key_id.clone(),
self.config.secret_key.clone(),
None, // session_token - None for long-term credentials
None, // expires_after - None for long-term credentials
"maze", // provider_name - just a label
);
// 2. Create region
let region = Region::new(self.config.region.to_string());
let config = aws_config::from_env()
.region(region)
.credentials_provider(credentials)
.load()
.await;
// let config = aws_config::load_from_env().await;
let client = aws_sdk_s3::Client::new(&config); let client = aws_sdk_s3::Client::new(&config);
let data_content = if data.raw_data.is_empty() { let data_content = if data.raw_data.is_empty() {