Updated links & set up windows build matrix. - icy_draw - icy_draw is the successor to mystic draw. fork / mirror
 (HTM) git clone https://git.drkhsh.at/icy_draw.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
 (DIR) commit 0e6f81ce37a49d4673debbfb09674fc0c1be9f84
 (DIR) parent 70fad8d6c4106ebabe5c8cb32689e38f0a47cc65
 (HTM) Author: Mike Krüger <mkrueger@posteo.de>
       Date:   Mon, 22 Apr 2024 08:48:11 +0200
       
       Updated links & set up windows build matrix.
       
       I need to test the build matrix on one system first.
       
       Diffstat:
         A .github/workflows/build.yml         |      61 +++++++++++++++++++++++++++++++
         A .github/workflows/run_tests.yml     |      30 ++++++++++++++++++++++++++++++
         M Cargo.toml                          |       2 +-
         M crates/icy_draw/Cargo.toml          |       2 +-
         M crates/icy_draw/README.md           |       2 +-
         M crates/icy_draw/build/file_id.diz   |       8 +++++---
         M crates/icy_draw/src/ui/dialogs/new… |       2 +-
         M crates/icy_draw/src/ui/top_bar.rs   |       6 +++---
         M crates/icy_engine_gui/src/ui/buffe… |       4 ++--
         A crates/icy_play/build/file_id.diz   |       8 ++++++++
         M crates/icy_term/Cargo.toml          |       2 +-
         M crates/icy_term/README.md           |       2 +-
         M crates/icy_term/build/file_id.diz   |       9 +++------
         M crates/icy_term/src/ui/terminal_wi… |       8 ++++----
         M crates/icy_view/Cargo.toml          |       2 +-
         M crates/icy_view/README.md           |       2 +-
         M crates/icy_view/build/file_id.diz   |       2 +-
         M crates/icy_view_gui/src/ui/file_vi… |       8 ++++----
       
       18 files changed, 129 insertions(+), 31 deletions(-)
       ---
 (DIR) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
       @@ -0,0 +1,60 @@
       +name: Build
       +on:
       +  workflow_run:
       +    workflows: ["Run Tests"]
       +    branches: [main]
       +    types: 
       +      - completed
       +env:
       +  CARGO_TERM_COLOR: always
       +jobs:
       +  build_windows:
       +    strategy:
       +    matrix:
       +      APP_NAME: [icy_term, icy_draw, icy_view, icy_play]
       +    runs-on: windows-latest
       +    steps:
       +    - uses: actions/checkout@v3
       +    - name: Build exe
       +      run: |
       +        cd .\crates\${{ matrix.APP_NAME }}
       +        cargo build --release
       +    - name: Install WiX
       +      run: dotnet tool install --global wix --version 4.0.1
       +    - name: Create PFX certificate
       +      id: create-pfx
       +      shell: pwsh
       +      env:
       +        PFX_CONTENT: ${{ secrets.WINDOWS_CERTIFICATE_BASE64 }}
       +      run: |
       +        $encodedBytes=[System.Convert]::FromBase64String($env:PFX_CONTENT);
       +        Set-Content "./cert.pfx" -Value $encodedBytes
       +        $VERSION=$(cargo pkgid | foreach-object { $_ -replace '(.*)#','' })
       +        echo "Version: $VERSION"
       +        Add-Content -Path $env:GITHUB_ENV -Value "VERSION=$VERSION"
       +        get-content .\crates\${{ matrix.APP_NAME }}\build\file_id.diz | %{$_ -replace "#VERSION","$VERSION"} >file_id.diz        
       +    - name: Build MSI installer.
       +      exclude:
       +        -APP_NAME: icy_play
       +      run: |
       +        echo "Building ${{ env.VERSION }} installer…"
       +        wix extension add WixToolset.UI.wixext WixToolset.Util.wixext
       +        wix build -arch "x64" -ext WixToolset.UI.wixext -ext WixToolset.Util.wixext -d "PATH=./cert.pfx" -d "VERSION=${{ env.VERSION }}"  -out "./${{ env.APP_NAME }}-${{ env.VERSION }}-installer.msi" "build/windows/installer.wxs"
       +    - name: Delete PFX certificate
       +      run: del "./cert.pfx"
       +    - name: 'Upload Artifact'
       +      uses: actions/upload-artifact@v3
       +      exclude:
       +        -APP_NAME: icy_play
       +      with:
       +        name: ${{ matrix.APP_NAME }}_${{ env.VERSION }}_windows_msi
       +        path: |
       +          ${{ matrix.APP_NAME }}-${{ env.VERSION }}-installer.msi
       +          file_id.diz
       +    - name: 'Upload Artifact 2'
       +      uses: actions/upload-artifact@v3
       +      with:
       +        name: ${{ matrix.APP_NAME }}_${{ env.VERSION }}_windows_exe
       +        path: |
       +          .\target\release\${{ matrix.APP_NAME }}.exe
       +          file_id.diz
       +\ No newline at end of file
 (DIR) diff --git a/.github/workflows/run_tests.yml b/.github/workflows/run_tests.yml
       @@ -0,0 +1,29 @@
       +name: Run tests
       +
       +on:
       +  push:
       +    branches: [ "main" ]
       +  pull_request:
       +    branches: [ "main" ]
       +env:
       +  CARGO_TERM_COLOR: always
       +jobs:
       +  run_checks:
       +    runs-on: ubuntu-latest
       +    steps:
       +    - uses: actions/checkout@v3    
       +    - name: Check formatting
       +      uses: actions-rs/cargo@v1
       +      with:
       +        command: fmt
       +        args: --all -- --check
       +    - run: rustup component add clippy
       +    - name: Install Dependencies
       +      run: |
       +        sudo apt-get update
       +        sudo apt-get install build-essential libgtk-3-dev libasound2-dev libxcb-shape0-dev libxcb-xfixes0-dev
       +    - name: Run tests
       +      uses: actions-rs/cargo@v1
       +      with:
       +        command: test
       +        args: --all-features
       +\ No newline at end of file
 (DIR) diff --git a/Cargo.toml b/Cargo.toml
       @@ -43,7 +43,7 @@ bstr = "1.9.1"
        regex = "1.9.5"
        directories = "5.0.1"
        
       -
       +egui = "0.27.2"
        eframe = "0.27.2"
        # eframe = { version = "0.27.2", default-features = false, features = [
        #     "accesskit",     # Make egui comptaible with screen readers. NOTE: adds a lot of dependencies.
 (DIR) diff --git a/crates/icy_draw/Cargo.toml b/crates/icy_draw/Cargo.toml
       @@ -5,7 +5,7 @@ edition = "2021"
        authors = ["Mike Krüger <mkrueger@posteo.de>"]
        description = "A drawing program for ANSI & ASCII art and other text-based art forms."
        license = "Apache-2.0"
       -repository = "https://github.com/mkrueger/icy_draw"
       +repository = "https://github.com/mkrueger/icy_tools"
        
        # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
        
 (DIR) diff --git a/crates/icy_draw/README.md b/crates/icy_draw/README.md
       @@ -36,7 +36,7 @@ IcyDraw is a full features ansi drawing tool doing things a bit different than o
        # Get binaries
        
        Get the latest release here:
       -https://github.com/mkrueger/icy_draw/releases/latest
       +https://github.com/mkrueger/icy_tools/releases/latest
        
        ## Requires
        
 (DIR) diff --git a/crates/icy_draw/build/file_id.diz b/crates/icy_draw/build/file_id.diz
       @@ -1,7 +1,8 @@
                 -* ICY DRAW #VERSION *-
        
       -ANSI drawing tool nobody should use
       -(yet).
       +ANSI drawing tool.
       +Supports: Everything, if it doesn't support
       +something it'll get implemented :).
        
        Development
       -GitHub https://github.com/mkrueger/icy_draw
       +GitHub https://github.com/mkrueger/icy_tools
       +\ No newline at end of file
 (DIR) diff --git a/crates/icy_draw/src/ui/dialogs/new_file_dialog.rs b/crates/icy_draw/src/ui/dialogs/new_file_dialog.rs
       @@ -340,7 +340,7 @@ end"#;
        
            fn show_ui(&mut self, ui: &mut Ui) {
                ui.label(fl!(crate::LANGUAGE_LOADER, "new-file-template-ansimation-ui-label"));
       -        ui.hyperlink("https://github.com/mkrueger/icy_draw/blob/main/doc/lua_api.md");
       +        ui.hyperlink("https://github.com/mkrueger/icy_tools/blob/master/crates/icy_draw/doc/lua_api.md");
            }
        }
        
 (DIR) diff --git a/crates/icy_draw/src/ui/top_bar.rs b/crates/icy_draw/src/ui/top_bar.rs
       @@ -555,13 +555,13 @@ impl<'a> MainWindow<'a> {
                    ui.menu_button(fl!(crate::LANGUAGE_LOADER, "menu-help"), |ui| {
                        ui.style_mut().wrap = Some(false);
                        ui.set_min_width(170.0);
       -                let r = ui.hyperlink_to(fl!(crate::LANGUAGE_LOADER, "menu-discuss"), "https://github.com/mkrueger/icy_draw/discussions");
       +                let r = ui.hyperlink_to(fl!(crate::LANGUAGE_LOADER, "menu-discuss"), "https://github.com/mkrueger/icy_tools/discussions");
                        if r.clicked() {
                            ui.close_menu();
                        }
                        let r = ui.hyperlink_to(
                            fl!(crate::LANGUAGE_LOADER, "menu-report-bug"),
       -                    "https://github.com/mkrueger/icy_draw/issues/new",
       +                    "https://github.com/mkrueger/icy_tools/issues/new",
                        );
                        if r.clicked() {
                            ui.close_menu();
       @@ -597,7 +597,7 @@ impl<'a> MainWindow<'a> {
                    if *VERSION < *LATEST_VERSION {
                        ui.hyperlink_to(
                            fl!(crate::LANGUAGE_LOADER, "menu-upgrade_version", version = LATEST_VERSION.to_string()),
       -                    "https://github.com/mkrueger/icy_draw/releases/latest",
       +                    "https://github.com/mkrueger/icy_tools/releases/latest",
                        );
                    }
                });
 (DIR) diff --git a/crates/icy_engine_gui/src/ui/buffer_view/glerror.rs b/crates/icy_engine_gui/src/ui/buffer_view/glerror.rs
       @@ -33,7 +33,7 @@ pub fn check_for_gl_error_impl(gl: &glow::Context, file: &str, line: u32, contex
        
                if context.is_empty() {
                    log::error!(
       -                "GL error, at {}:{}: {} (0x{:X}). Please file a bug at https://github.com/mkrueger/icy_term/issues",
       +                "GL error, at {}:{}: {} (0x{:X}). Please file a bug at https://github.com/mkrueger/icy_tools/issues",
                        file,
                        line,
                        error_str,
       @@ -41,7 +41,7 @@ pub fn check_for_gl_error_impl(gl: &glow::Context, file: &str, line: u32, contex
                    );
                } else {
                    log::error!(
       -                "GL error, at {}:{} ({}): {} (0x{:X}). Please file a bug at https://github.com/mkrueger/icy_term/issues",
       +                "GL error, at {}:{} ({}): {} (0x{:X}). Please file a bug at https://github.com/mkrueger/icy_tools/issues",
                        file,
                        line,
                        context,
 (DIR) diff --git a/crates/icy_play/build/file_id.diz b/crates/icy_play/build/file_id.diz
       @@ -0,0 +1,7 @@
       +         -* ICY PLAY #VERSION *-
       +
       +Plays IcyDraw animations on console.
       +Useful for BBSes showing icy draw animations.
       +
       +Development
       +GitHub https://github.com/mkrueger/icy_tools
       +\ No newline at end of file
 (DIR) diff --git a/crates/icy_term/Cargo.toml b/crates/icy_term/Cargo.toml
       @@ -5,7 +5,7 @@ authors.workspace = true
        edition.workspace = true
        description = "A terminal program supporting CP437, PetScii and ViewData"
        license.workspace = true
       -repository = "https://github.com/mkrueger/icy_term"
       +repository = "https://github.com/mkrueger/icy_tools"
        
        [dependencies]
        egui = { workspace = true }
 (DIR) diff --git a/crates/icy_term/README.md b/crates/icy_term/README.md
       @@ -23,7 +23,7 @@ Features supported so far:
        # Get binaries
        
        Get the latest release here:
       -https://github.com/mkrueger/icy_term/releases/latest
       +https://github.com/mkrueger/icy_tools/releases/latest
        
        
        ## Requires
 (DIR) diff --git a/crates/icy_term/build/file_id.diz b/crates/icy_term/build/file_id.diz
       @@ -9,10 +9,7 @@ A modern terminal program for BBS systems.
        - Copy & Paste
        - IEMSI support
        - Supports CP437, PETSCII, ATASCII, 
       -  VIEWDATA
       +  VIEWDATA and RIPSCRIPT
        
       -For latest builds
       -Visit Crazy Paradise BBS WHQ: cpbbs.de:2323
       -
       -Development
       -GitHub https://github.com/mkrueger/icy_term
       +For latest builds/development visit:
       +GitHub https://github.com/mkrueger/icy_tools
 (DIR) diff --git a/crates/icy_term/src/ui/terminal_window.rs b/crates/icy_term/src/ui/terminal_window.rs
       @@ -125,7 +125,7 @@ impl MainWindow {
                            if *VERSION < *LATEST_VERSION {
                                ui.hyperlink_to(
                                    fl!(crate::LANGUAGE_LOADER, "menu-upgrade_version", version = LATEST_VERSION.to_string()),
       -                            "https://github.com/mkrueger/icy_term/releases/latest",
       +                            "https://github.com/mkrueger/icy_tools/releases/latest",
                                );
                            }
        
       @@ -141,21 +141,21 @@ impl MainWindow {
                            ui.menu_image_button(MENU.clone().tint(crate::ui::button_tint(ui)), |ui| {
                                let r = ui.hyperlink_to(
                                    fl!(crate::LANGUAGE_LOADER, "menu-item-discuss"),
       -                            "https://github.com/mkrueger/icy_term/discussions",
       +                            "https://github.com/mkrueger/icy_tools/discussions",
                                );
                                if r.clicked() {
                                    ui.close_menu();
                                }
                                let r = ui.hyperlink_to(
                                    fl!(crate::LANGUAGE_LOADER, "menu-item-report-bug"),
       -                            "https://github.com/mkrueger/icy_term/issues/new",
       +                            "https://github.com/mkrueger/icy_tools/issues/new",
                                );
                                if r.clicked() {
                                    ui.close_menu();
                                }
                                let r = ui.hyperlink_to(
                                    fl!(crate::LANGUAGE_LOADER, "menu-item-check-releases"),
       -                            "https://github.com/mkrueger/icy_term/releases/latest",
       +                            "https://github.com/mkrueger/icy_tools/releases/latest",
                                );
                                if r.clicked() {
                                    ui.close_menu();
 (DIR) diff --git a/crates/icy_view/Cargo.toml b/crates/icy_view/Cargo.toml
       @@ -4,7 +4,7 @@ version = "0.6.1"
        authors.workspace = true
        edition.workspace = true
        license.workspace = true
       -repository = "https://github.com/mkrueger/icy_view"
       +repository = "https://github.com/mkrueger/icy_tools"
        
        # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
        
 (DIR) diff --git a/crates/icy_view/README.md b/crates/icy_view/README.md
       @@ -12,7 +12,7 @@ Features supported so far:
        # Get binaries
        
        Get the latest release here:
       -https://github.com/mkrueger/icy_view/releases/latest
       +https://github.com/mkrueger/icy_tools/releases/latest
        
        # Help
        
 (DIR) diff --git a/crates/icy_view/build/file_id.diz b/crates/icy_view/build/file_id.diz
       @@ -9,4 +9,4 @@ A cross platform ansi art viewer.
        - Can open zip files directly
        
        For latest builds
       -GitHub https://github.com/mkrueger/icy_view
       +GitHub https://github.com/mkrueger/icy_tools
 (DIR) diff --git a/crates/icy_view_gui/src/ui/file_view.rs b/crates/icy_view_gui/src/ui/file_view.rs
       @@ -177,7 +177,7 @@ impl FileView {
                    if let Some(ver) = &self.upgrade_version {
                        ui.hyperlink_to(
                            fl!(crate::LANGUAGE_LOADER, "menu-upgrade_version", version = ver.clone()),
       -                    "https://github.com/mkrueger/icy_view/releases/latest",
       +                    "https://github.com/mkrueger/icy_tools/releases/latest",
                        );
                    }
                });
       @@ -208,21 +208,21 @@ impl FileView {
                    ui.menu_button("…", |ui| {
                        let r = ui.hyperlink_to(
                            fl!(crate::LANGUAGE_LOADER, "menu-item-discuss"),
       -                    "https://github.com/mkrueger/icy_view/discussions",
       +                    "https://github.com/mkrueger/icy_tools/discussions",
                        );
                        if r.clicked() {
                            ui.close_menu();
                        }
                        let r = ui.hyperlink_to(
                            fl!(crate::LANGUAGE_LOADER, "menu-item-report-bug"),
       -                    "https://github.com/mkrueger/icy_view/issues/new",
       +                    "https://github.com/mkrueger/icy_tools/issues/new",
                        );
                        if r.clicked() {
                            ui.close_menu();
                        }
                        let r = ui.hyperlink_to(
                            fl!(crate::LANGUAGE_LOADER, "menu-item-check-releases"),
       -                    "https://github.com/mkrueger/icy_view/releases/latest",
       +                    "https://github.com/mkrueger/icy_tools/releases/latest",
                        );
                        if r.clicked() {
                            ui.close_menu();