GithubHelp home page GithubHelp logo

jnsgruk / ghvmctl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from snapcrafters/ghvmctl

0.0 1.0 0.0 27 KB

A utility for manipulating virtual machines during snap testing

License: Apache License 2.0

Shell 100.00%

ghvmctl's Introduction

ghvmctl

"Easily create and manage desktop VMs for testing snap packages in CI"

Snap Status

Published for with ๐Ÿ’ by Snapcrafters

About

A utility for creating and manipulating desktop virtual machines using LXD, primarily for installing and running desktop applications in CI pipelines so that screenshots can be gathered automatically as part of the QA process.

Install the snap

sudo snap install ghvmctl
sudo snap connect ghvmctl:lxd lxd:lxd

(Don't have snapd installed?)

Use the Github Action

A simple Github Action for configuring ghvmctl for use on Github Actions runners is also available in the snapcrafters/ci repository, which will do the following:

  • Enable KVM on the runner
  • Install and initialise LXD
  • Install and configure ghvmctl

The Github Action can be used like so:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Setup ghvmctl
        uses: snapcrafters/ci/setup-ghvmctl@main

How to contribute to this snap

Thanks for your interest! Below you find instructions to help you contribute to this snap.

The general workflow is to submit pull requests that merges your changes into the candidate branch here on GitHub. Once the pull request has been merged, a GitHub action will automatically build the snap and publish it to the candidate channel in the Snap Store. Once the snap has been tested thoroughly, we promote it to the stable channel so all our users get it!

Initial setup

If this is your first time contributing to this snap, you first need to set up your own fork of this repository.

  1. Fork the repository into your own GitHub namespace.

  2. Clone your fork, so that you have it on your local computer.

  3. Configure your local repo. To make things a bit more intuitive, we will rename your fork's remote to myfork, and add the snapcrafters repo as snapcrafters.

    git remote rename origin myfork
    git remote add snapcrafters https://github.com/snapcrafters/discord.git
    git fetch --all

Submitting changes in a pull request

Once you're all setup for contributing, keep in mind that you want the git information to be all up-to-date. So if you haven't "fetched" all changes in a while, start with that:

git fetch --all -p

Now that your git metadata has been updated you are ready to create a bugfix branch, make your changes, and open a pull request.

  1. All pull requests should go to the stable branch so create your branch as a copy of the stable branch:

    git checkout -b my-bugfix-branch snapcrafters/candidate
  2. Make your desired changes and build a snap locally for testing:

    snapcraft --use-lxd
  3. After you are happy with your changes, commit them and push them to your fork so they are available on GitHub:

    git commit -a
    git push -u myfork my-bugfix-branch
  4. Then, open up a pull request from your my-bugfix-branch to the snapcrafters/candidate branch.

  5. Once you've opened the pull request, it will automatically trigger the build-test action that will launch a build of the snap. You can watch the progress of the snap build from your pull request (Show all checks -> Details). Once the snap build has completed, you can find the built snap (to test with) under "Artifacts".

  6. Someone from the team will review the open pull request and either merge it or start a discussion with you with additional changes or clarification needed.

  7. Once the pull request has been merged into the stable branch, a GitHub action will rebuild the snap using your changes and publish it to the Snap Store into the candidate channel. After sufficient testing of the snap from the candidate channel, one of the maintainers or administrators will promote the snap to the stable branch in the Snap Store.

Maintainers

License

  • The license of the files in this repository are Apache.

ghvmctl's People

Contributors

jnsgruk avatar 3v1n0 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.