add basic rust ci using task #1

Merged
joeyahines merged 8 commits from gitea_ci into main 2026-03-22 22:56:54 +00:00
3 changed files with 62 additions and 9 deletions

View File

@ -0,0 +1,29 @@
name: Build and Test Formaty
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Install Task
uses: go-task/setup-task@v2
with:
repo-token: ${{ secrets.TASK_GITHUB_API_TOKEN }}
- uses: actions/checkout@v2
- name: Stable with rustfmt and clippy
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: rustfmt, clippy
- name: Lint Code
run: task check
- name: Build
run: task build
- name: Run Unit Tests
run: task test
- name: Upload Built Binary
uses: christopherHX/gitea-upload-artifact@v4
with:
name: formaty
path: target/debug/formaty

View File

@ -0,0 +1,24 @@
name: Build and Release Formaty
on: [release]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Install Task
uses: go-task/setup-task@v2
with:
repo-token: ${{ secrets.TASK_GITHUB_API_TOKEN }}
- uses: actions/checkout@v2
- name: Stable with rustfmt and clippy
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
- name: Build Release
run: task build:release
- uses: actions/gitea-release-action@v1
with:
files: |-
target/release/formaty

View File

@ -7,7 +7,7 @@ use serde::Deserialize;
use std::fs::{File, read_dir}; use std::fs::{File, read_dir};
use std::io::Read; use std::io::Read;
use std::path::PathBuf; use std::path::PathBuf;
use std::{fs, str}; use std::str;
#[derive(RustEmbed)] #[derive(RustEmbed)]
#[folder = "formats/"] #[folder = "formats/"]
@ -95,19 +95,19 @@ impl FormatConfig {
config.get_file_config(config_path)?; config.get_file_config(config_path)?;
let global_dir = match global_config_path { let global_dir = match global_config_path {
Some(g) => g.clone(), Some(g) => Some(g.clone()),
None => { None => {
let app_dirs = AppDirs::new(Some("formaty"), true).unwrap(); if let Some(app_dirs) = AppDirs::new(Some("formaty"), true)
&& app_dirs.config_dir.exists()
if !app_dirs.config_dir.exists() { {
fs::create_dir(&app_dirs.config_dir)?; Some(app_dirs.config_dir)
} else {
None
} }
app_dirs.config_dir
} }
}; };
config.parse_directory(&Some(global_dir))?; config.parse_directory(&global_dir)?;
Ok(config) Ok(config)
} }