diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..a83c91f --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,58 @@ +name: Docker Build and Push with Version + +on: + push: + branches: + - master + +env: + DOCKER_REGISTRY: r.regnault.dev + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + PORTAINER_API_WEBHOOK: ${{ secrets.PORTAINER_API_WEBHOOK }} + +jobs: + build_and_push: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ${{ env.DOCKER_REGISTRY }} + username: ${{ env.DOCKER_USERNAME }} + password: ${{ env.DOCKER_PASSWORD }} + + - name: Install cargo-semver + uses: actions-rs/install@v0.1.2 + with: + crate: cargo-get + version: latest + + - name: Semver + run: + echo "VERSION=$(cargo get package.version --pretty)" >> $GITHUB_ENV + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Build and push + uses: docker/build-push-action@v4 + with: + context: . + push: true + tags: | + ${{ env.DOCKER_REGISTRY }}/drunk-venti-rust:latest + ${{ env.DOCKER_REGISTRY }}/drunk-venti-rust:${{ env.VERSION }} + cache-from: type=gha + cache-to: type=gha,mode=max + + - name: Deploy to production + uses: fjogeleit/http-request-action@v1.14.1 + with: + url: ${{ format('{0}?BOT-TAG={1}',env.PORTAINER_API_WEBHOOK, env.VERSION) }} + method: 'POST' + preventFailureOnNoResponse: true \ No newline at end of file diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml deleted file mode 100644 index 0f7b41a..0000000 --- a/.github/workflows/rust.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Rust - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -env: - CARGO_TERM_COLOR: always - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Build - run: cargo build --verbose - - name: Run test - run: cargo test --verbose diff --git a/Cargo.toml b/Cargo.toml index bf965eb..4f625cd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "drunk-venti-rust" -version = "1.2.0" +version = "1.2.1" edition = "2021" authors = ["Evann Regnault"] license = "MIT" diff --git a/src/data/builds.rs b/src/data/builds.rs index f422d6e..5b0e4c7 100644 --- a/src/data/builds.rs +++ b/src/data/builds.rs @@ -26,7 +26,7 @@ pub struct Role{ pub main_stats: RoleStat, pub sub_stats: Vec>, pub talent: Vec>, - pub tip: Box, + pub tip: Option, pub note: Box, pub name: Box, } diff --git a/src/interactions/genshin/build.rs b/src/interactions/genshin/build.rs index c1a46d4..9b5ce82 100644 --- a/src/interactions/genshin/build.rs +++ b/src/interactions/genshin/build.rs @@ -395,9 +395,13 @@ async fn note_embed(role: &Role, character: Character) -> CreateEmbed { } }; - let n = &role.tip; + let a = role.tip.as_ref(); { - let x = n.split('\n'); + let y = match a { + None => { String::from("")} + Some(b) => { b.to_string() } + }; + let x = y.split('\n'); let mut first = true; let mut add_before = ""; for tip_paragraph in x.collect::>() { diff --git a/src/interactions/status_message.rs b/src/interactions/status_message.rs index 142e657..3c850ce 100644 --- a/src/interactions/status_message.rs +++ b/src/interactions/status_message.rs @@ -161,7 +161,7 @@ async fn create_status_embed() -> Vec { upcoming_embed.color(Colour::new(rand::thread_rng().gen_range(0x000000..0xffffff))); if let Some(url) = &e.image { - upcoming_embed.image(format!("https://github.com/MadeBaruna/paimon-moe/raw/main/static/images/events/{}", url)); + upcoming_embed.image(format!("https://github.com/MadeBaruna/paimon-moe/raw/main/static/images/events/{}", url.replace(' ', "%20"))); }; if let Some(url) = &e.url { upcoming_embed.url(format!("{}{}", url, question_marks)); }; diff --git a/src/main.rs b/src/main.rs index afb3a08..c7bcbe2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -135,7 +135,7 @@ impl EventHandler for Handler { } fn test_environment() { - env::var("DISCORD_TOKEN").expect("DISCORD_TOKEN needed"); + env::var("TOKEN").expect("TOKEN needed"); env::var("MONGO_HOST").expect("MONGO_HOST needed"); env::var("MONGO_PORT").expect("MONGO_PORT needed"); env::var("API_HOST").expect("API_HOST needed"); @@ -146,7 +146,7 @@ fn test_environment() { async fn main() { dotenv().ok(); test_environment(); - let token= env::var("DISCORD_TOKEN").unwrap(); + let token= env::var("TOKEN").unwrap(); let application_id: u64 = "860553396578811914".parse().expect("Wrong format"); let needed_intents = [