Číst v angličtině

Sdílet prostřednictvím


Kurz: Zabalení privátní závislosti Azure DevOps

Tento kurz vás provede vytvořením překryvného portu pro knihovnu hostované v privátním úložišti Azure DevOps, které zahrnuje nastavení ověřování a balení do překrytí.

Požadavky:

  • Základní znalost Gitu a vcpkg
  • Přístup k Azure DevOps s oprávněními k vytváření projektů a správě klíčů SSH
  • vcpkg nainstalované ve vašem systému.
  • Git je nainstalovaný ve vašem systému.

1. Vytvoření privátního projektu

  1. Přihlaste se ke svému účtu Azure DevOps.
  2. Vytvořte nový soukromý projekt. Pokud nemáte organizaci, zobrazí se výzva k jeho vytvoření během procesu vytváření projektu.
    • Pojmenujte projekt: Zvolte smysluplný název, který odpovídá vaší knihovně nebo jejímu účelu.

    • Viditelnost: Ujistěte se, že je projekt nastavený na Private (Soukromý) pro řízení přístupu.

      New Project

2. Nastavení ověřování v Azure DevOps

Zabezpečený přístup k úložišti pomocí klíčů SSH.

  1. Vygenerování páru klíčů SSH

    • Otevřete terminál nebo příkazový řádek.

    • Spusťte následující příkaz:

      Console
      ssh-keygen -t rsa -b 4096 -C "ADO-RSA" -f /path/to/.ssh/id_rsa_ado
      
      • -t rsa: Určuje typ klíče, který se má vytvořit, v tomto případě RSA.
      • -b 4096: Nastaví počet bitů v klíči, v tomto případě 4096, který je považován za silný a bezpečný.
      • -C "ADO-RSA": Přidá k klíči popisek pro identifikaci, což může být užitečné zejména v případě, že máte více klíčů.
      • -f /path/to/.ssh/id_rsa_ado: Určuje název souboru nového klíče. Tento příkaz uloží privátní klíč do id_rsa_ado a veřejný klíč do id_rsa_ado.pub.

      Zobrazí se výzva k zadání přístupového hesla pro další zabezpečení. Můžete zadat heslo nebo stisknout Enter a pokračovat bez hesla. Přístupové heslo přidá další vrstvu zabezpečení tím, že vyžaduje zadání přístupového hesla při každém použití klíče.

    • Po vygenerování klíče potvrďte, že se nový klíč vytvoří opětovným výpisem obsahu adresáře /.ssh/ :

      Console
      ls /path/to/.ssh
      
  2. Přidání klíče SSH do Azure DevOps

    • id_rsa_ado.pub Otevřete soubor pomocí textového editoru a zobrazte veřejný klíč.

    • Zkopírujte celý obsah souboru.

    • Přejděte na veřejný klíč SSH uživatele Nastavení>.

      User Settings > SSH Public Keys

    • Přidejte nový klíč vložením zkopírovaného obsahu a pojmenujte svůj klíč pro budoucí referenci.

      Add the Key

  3. Načtěte klíč SSH do agenta SSH.

    Ujistěte se, že je váš klíč SSH k dispozici pro ověřování:

    Console
    ssh-add /path/to/.ssh/id_rsa_ado
    
  4. Testování připojení SSH

    Ověření připojení k Azure DevOps:

    Console
    ssh -T git@ssh.dev.azure.com
    

    Očekávejte zprávu, která značí úspěšné ověření, ale znamená to, že přístup k prostředí není podporovaný.

    ssh -T git@ssh.dev.azure.com
    remote: Shell access is not supported.
    shell request failed on channel 0
    

3. Nahrání knihovny do úložiště Azure DevOps

  1. Inicializace místního úložiště Git

    Přejděte do adresáře zdrojového kódu vaší knihovny a inicializujete úložiště Git:

    Console
    git init
    
  2. Potvrďte přidání a potvrzení zdrojového kódu knihovny:

    Console
    git add .
    git commit -m "Initial commit of the sample library"
    
  3. Odkaz na úložiště Azure DevOps

    Načtěte adresu URL SSH úložiště z Azure DevOps a přidejte ji jako vzdálený:

    SSH URL

    Console
    git remote add origin <Your-Repo-SSH-URL>
    
  4. Nasdílení změn knihovny

    Nahrajte knihovnu do úložiště Azure DevOps:

    Console
    git push -u origin master:main
    

4. Zabalení knihovny do překryvného portu

Překryvné porty umožňují používat místní porty s vcpkg.

  1. Vytvoření adresáře překryvných portů

    Console
    mkdir vcpkg-overlay-ports
    cd vcpkg-overlay-ports
    
  2. Nastavení souborů portů

  • vcpkg.json: Tento soubor manifestu definuje metadata a závislosti vaší knihovny.

    Právní omezení: Následující příklady používají zástupné symboly. Nahraďte je skutečnými daty.

    JSON
    {
        "name": "your-library-name",
        "version": "1.0.0",
        "description": "Description of your library.",
        "dependencies": []
    }
    

    Soubor vcpkg.json slouží jako manifest, který definuje metadata a závislosti pro knihovnu C++ a poskytuje vcpkg potřebné informace k sestavení, instalaci a správě balíčku.

    • name: Určuje název knihovny. Používá se jako identifikátor balíčku.
    • version: Označuje číslo verze knihovny.
    • description: Stručný text popisující, co knihovna dělá. Toto je pro dokumentaci a uživatele.
    • dependencies: Pole obsahující seznam závislostí, které knihovna potřebuje.

    Další informace o tom, jak nastavit, vcpkg.jsonnajdete v referenční dokumentaci.

  • portfile.cmake : Tento skript říká vcpkg, jak sestavit knihovnu.

    cmake
    vcpkg_from_git(
        OUT_SOURCE_PATH SOURCE_PATH
        URL "git@ssh.dev.azure.com:v3/YourOrg/YourProject/YourRepo"
        REF "<commit-sha>"
    )
    
    vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}")
    vcpkg_cmake_install()
    vcpkg_cmake_config_fixup(PACKAGE_NAME your-library-name)
    file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/your-library-name")
    

    Tento soubor portu definuje, jak stáhnout, sestavit, nainstalovat a zabalit konkrétní knihovnu C++ z GitHubu pomocí vcpkg.

    • vcpkg_from_git: Spustí funkci pro stažení zdrojového kódu z úložiště Git.
    • OUT_SOURCE_PATH SOURCE_PATH: Nastaví adresář, ve kterém se bude extrahovat zdrojový kód.
    • URL git@ssh.dev.azure.com:v3/YourOrg/YourProject/YourRepo: Adresa URL SSH úložiště obsahujícího zdrojový kód.
    • REF <commit-sha>: Potvrzení SHA kódu vaší knihovny v Azure DevOps.
    • vcpkg_cmake_configure: Nakonfiguruje projekt pomocí CMake a nastaví sestavení.
      • SOURCE_PATH "${SOURCE_PATH}": Cesta ke zdrojovému kódu staženého dříve.
    • vcpkg_cmake_install(): Sestaví a nainstaluje balíček pomocí CMake.
    • vcpkg_cmake_config_fixup(PACKAGE_NAME your-library-name): Opravuje konfigurační soubory balíčku CMake, aby byly kompatibilní s Vcpkg.
    • file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION ...): Nainstaluje soubor LICENSE do adresáře sdílené složky balíčku a přejmenuje ho na autorská práva.

    Získání algoritmu SHA potvrzení:

    Console
    mkdir temp && cd temp
    git init
    git fetch <Your-Repo-SSH-URL> main --depth 1 -n
    git rev-parse FETCH_HEAD
    

    Další informace o tom, jak nastavit, portfile.cmakenajdete v následujících článcích:

  1. Instalace portu

    Vraťte se do hlavního adresáře vcpkg a nainstalujte knihovnu, která určuje adresář překryvných portů:

    Console
    vcpkg install your-library-name --overlay-ports=/path/to/vcpkg-overlay-ports
    

Další kroky

Úspěšně jste zabalili privátní úložiště Azure DevOps jako port vcpkg. Tento kurz je určen jako vodítko; Přizpůsobte si pokyny tak, aby odpovídaly vaší konkrétní knihovně a vývojovému prostředí.