Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AlgoKit CLI CI/CD #17

Closed
robdmoore opened this issue Nov 15, 2022 · 2 comments · Fixed by #21
Closed

AlgoKit CLI CI/CD #17

robdmoore opened this issue Nov 15, 2022 · 2 comments · Fixed by #21
Assignees
Labels
algokitv1 Original AlgoKit v1 backlog items

Comments

@robdmoore
Copy link
Contributor

robdmoore commented Nov 15, 2022

Options:

  • GitHub flow (pull request -> main) and we can optionally release a build to PyPi (by clicking a button in GitHub actions); vs
  • Git Flow (pull request -> develop -> main) and a merge to main automatically

GitHub flow is simpler, Git flow allows for longer-running experimental branches.

We decided to use GitHub flow for simplicity and to encourage regular releasing. If there is a need for an experimental branch then it can be released by running the GitHub action against the branch and thus published as a pre-release.

Acceptance Criteria:

  • When a pull request is opened to AlgoKit CLI a GitHub action is run that checks: the code typings are valid, formatting is valid according to the Python Black configuration, any tests (present) pass
  • When there's a new commit on the main branch of the AlgoKit CLI a GitHub workflow is run that:
    1. Checks the code typings are valid
    2. Checks the formatting is valid according to the Python Black configuration
    3. Checks the linting is valid according to the TBD configuration
    4. Checks all tests pass
    5. Builds a PyPi Wheel package ready for publishing
    6. Releases a pre-release package to PyPi
  • If the branch is not main then the branch name will be used as a pre-release tag, but otherwise it will be beta
  • There is an ability for a product manager to trigger a "stable" release, which will deploy a new non-pre-release package to PyPi
    (NOTE: These last criteria are being completed in Releasing AlgoKit #16)
@mzaatar
Copy link
Contributor

mzaatar commented Nov 15, 2022

Use Poetry for building, Ruff for linting, PyTest for unit testing, and upload Wheel.
We will start simple with Ubuntu images and assume it will work cross-platform
Tox for later in CI/CD: test with supported Python versions (3.10 and 3.11)

Use PyPI GitHub Action: https://github.com/marketplace/actions/pypi-publish

Later on, think of the OS variants for building and testing.

@mzaatar
Copy link
Contributor

mzaatar commented Nov 15, 2022

Team decided on GitHub flow

@mzaatar mzaatar self-assigned this Nov 15, 2022
This was referenced Nov 15, 2022
@robdmoore robdmoore linked a pull request Nov 16, 2022 that will close this issue
@mzaatar mzaatar changed the title AlgoKit CLI CI/CD to PyPi AlgoKit CLI CI/CD Nov 22, 2022
@robdmoore robdmoore added the algokitv1 Original AlgoKit v1 backlog items label Dec 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
algokitv1 Original AlgoKit v1 backlog items
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants