Skip to content

Ash258/GithubActionsBucketForTesting

Repository files navigation

Generic scoop bucket

❗❗🎉 Repository was converted into Template. See blog for more information. 🎉❗❗

In this repository you will find everything you need to know about creating custom bucket with appveyor support.

Files and helpers

bucket Folder

  • All manifests belong here
  • .gitkeep file could be removed after you push your first manifest

.vscode Folder

Contains all syntax highlighting, code formating, manifest creating tools you could use.

  • Extensions
    • All extensions which will save your time while writing manifests are in recommended sections
    • You will be notified about installing them when you open project
  • Settings
    • All settings are set to be compatible with Appveyor pipeline and upstream (official) repositories
      • No need to worry about formating restrictions between repositories.
  • Code snippets
    • Code snippets are templates that make it easier to enter repeating code patterns, such as loops or conditional-statements.

    • You could use workspace wide code snippets for speed up manifest creating
    • While editing json file write partitial name of snippet and press tab
    • Available Json snippets:
      • app
        • Create default manifest structure
      • appArch
        • Create default manifest structure with full acrchitecture
      • arch
        • Create only architecture property with 64bit and 32bit
      • upAr
        • Create autoupdate property with architecture
      • persistCheck
        • Installer / pre_install script for checking if file is already persisted or need to be created

bin Folder

Scripts which will save you much time while debuging and writing manifests. If you need help how to use them just run Get-Help .\bin\<BINARY>.ps1.

Scoop-Bucket.Tests.ps1 File

  • Test which are executed inside Appveyor pipeline
  • Also are executed as pre-commit hook

config files

  • .appveyor.yml
    • Definition of Appveyor CI pipeline
  • .editorconfig
    • Universal configuration file, compatible with all types of editors
    • Defines how files should look
  • .gitattributes
    • Simplifying line endings for git
    • No need to configure auto.clrf setting on each clone or new workspaces

How to use and adopt this bucket

  1. Fork / Clone this repository
    • Cloning manually as zip is preferred as you will have issues available for your bucket
      • You can always add upstream repository using command line (see Step 8)
  2. Give your bucket in new name inside github project settings
  3. Add proper description of repository
    • Information about what type of manifests could be found here
  4. Add scoop-bucket tag for repository
  5. Enable appveyor CI/CD
    1. Register / Login to Appveyor
    2. Click New Project
    3. From Left Panel choose your source control variant (Github)
    4. From Right Panel choose repository with bucket and click + Add
    5. 🎉 Project created and ready to build 🎉
    6. Get Badge URL
      1. Open Appveyor Project settings
      2. Navigate to Badges
      3. Copy Branch Sample markdown code snippet for further usage
        • Only master branch is better, since you can freely test in other branches and do not mystificate users.
  6. Clone project into some folder
  7. Open vscode with this clone
  8. Run git remote add 'upstream' 'https://github.com/Ash258/GenericBucket.git'
    • This step will allow you to synchronize changes with this template repository
    • If some changes are pushed into this repository and you want to reflect them into your bucket, you can simply do something like:
      • git fetch --all
      • git checkout -B upstream-master -t upstream/master
      • Do changes
      • git merge master or create PR in github
  9. Create proper README.md
    1. Open README.template.md
    2. Replace all %%templatestring%% with real and according values
      1. Replace appveyor status badge with yours
    3. Override this README with completed README.template.md
    4. Remove template README.template.md
  10. 🎉🎉 Everything set. You are ready to write and share manifests. 🎉🎉