aaronparker / evergreen

Create evergreen Windows image build pipelines with the latest version numbers and download URLs for common applications
http://stealthpuppy.com/evergreen/
MIT License
379 stars 65 forks source link

[Feature]: Creating a "library" containing general application info for ALL evergreen supported applications? #579

Open sultanberisa opened 11 months ago

sultanberisa commented 11 months ago

What is your feature request?

Would it be a way to create a library for all evergreen supported applications? Either something that contains a URI or the direct command to get the app, "filter", something similar to App.json that is made in packagingfactory but for ALL applications:

{
  "Application": {
    "Name": "AdobeAcrobatReaderDC",
    "Filter": "Invoke-EvergreenApp -Name \"AdobeAcrobatReaderDC\" | Where-Object { $_.Language -eq \"MUI\" -and $_.Architecture -eq \"x64\" } | Select-Object -First 1",
    "Title": "Adobe Acrobat Reader DC",
    "Language": "English",
    "Architecture": "x64"
  },
  "PackageInformation": {
    "SetupType": "EXE",
    "SetupFile": "AcroRdrDCx642300620360_MUI.exe",
    "Version": "23.006.20360",
    "SourceFolder": "Source",
    "OutputFolder": "Package",
    "IconFile": "https://github.com/aaronparker/icons/raw/main/companyportal/Adobe-AcrobatReader.png"
  },
  "Information": {
    "DisplayName": "Adobe Acrobat Reader DC 23.006.20360 x64",
    "Description": "Adobe Acrobat Reader is the free, trusted global standard for viewing, printing, e-signing, sharing, and annotating PDFs. View PDFs, Leave comments or annotate PDFs, Fill, e-sign, and lock your forms, Collaborate better with PDFs.",
    "Publisher": "Adobe",
    "InformationURL": "https://www.adobe.com/acrobat/pdf-reader.html",
    "PrivacyURL": "https://www.adobe.com/privacy.html",
    "FeaturedApp": false,
    "Categories": [],
    "PSPackageFactoryGuid": "a0042672-7240-4312-892e-39623320c0a3"
  },
  "Program": {
    "InstallTemplate": "Deploy-Application.exe -DeploymentType \"Install\" -DeployMode \"Silent\"",
    "InstallCommand": "Deploy-Application.exe -DeploymentType \"Install\" -DeployMode \"Silent\"",
    "UninstallCommand": "Deploy-Application.exe -DeploymentType \"Uninstall\" -DeployMode \"Silent\"",
    "InstallExperience": "system",
    "DeviceRestartBehavior": "suppress"
  },
  "RequirementRule": {
    "MinimumRequiredOperatingSystem": "W10_1809",
    "Architecture": "x64"
  },
  "CustomRequirementRule": [],
  "DetectionRule": [
    {
      "Type": "File",
      "DetectionMethod": "Version",
      "Path": "C:\\Program Files\\Adobe\\Acrobat DC\\Acrobat",
      "FileOrFolder": "Acrobat.exe",
      "Operator": "greaterThanOrEqual",
      "VersionValue": "23.006.20360",
      "Check32BitOn64System": "false"
    }
  ],
  "Dependencies": [],
  "Supersedence": [],
  "Assignments": []
}

Have you tested against the current version?

Have you reviewed the documentation?

sultanberisa commented 11 months ago

@aaronparker Exporting each app manifest somewhat gives me what i want, but the variating terms of Ring where some are named "general" and some "production". If i would want to mass download say, production (if applicable) installers that are x64 and for Windows, how would i do that in any sort of way? I dont see any way to do that per now except for manually.

aaronparker commented 11 months ago

Have you seen Evergreen Libraries? https://stealthpuppy.com/evergreen/newlibrary/

sultanberisa commented 10 months ago

Have you seen Evergreen Libraries? https://stealthpuppy.com/evergreen/newlibrary/

Yes, but as far as i can see it requires me to manually add each app to the "library", is there any way i can just create a library and add "all" the applications to said library?

aaronparker commented 10 months ago

Evergreen has an API: https://stealthpuppy.com/evergreen/invoke. You could query the available application properties from there, then build out queries for each app.