Giter Site home page Giter Site logo

rust-action-template's Introduction

rust-action-template

Repository to paly with github actions until I have a template I'm statisfied with.

rust-action-template's People

Contributors

rustonaut avatar

Watchers

 avatar  avatar

rust-action-template's Issues

On open new issue

  1. auto assign to me
  2. auto set labels (+ labels unverified-labels) (I decided against that)

Secure actions

  • check if authors can manipulate already published actions (and as such effectively circumvent any reviews)

    • especially check publish -> unpublish -> republish
  • if necessary create forks of all used actions

Auto publish through tags

On merge to master:

  1. check if there is a release tag (r#"^v\d+\.\d+\.\d+"# or so)

    • validate the releases viability (tag version matches Cargo.toml, etc.)
  2. auto publish to crates.io

Badges on published vs. master.

The badges we want to have in the README we publish to crates.io and the ones we have on github probably should not be the same.

One should be on the given stable publishe version.

The other should be based on the master branch.

Probably best done by having two generated READMES (we might anyway generate the readme ourself).

Examples in README (and maybe module doc).

The idea is that we make a README template and then "drop" in the example(s) we store in examples/.

The idea is we write and maintain examples in the example dir where the user can run them and don't have to bother with keeping them in sync.

Maybe we also will use some form of trick if possible to do so for the module level doc which often has a big overlap (including examples) with the README.

Easy pushing new versions.

Originally I wanted to make this an manual action but it's probably better suited as an script using the github web API?

The idea is to have a script/action which if you trigger it and provide a new version
will bump the version number in Cargo.toml and autogenerate the Tag and auto updates the CHANGELOG.md.

One reason why I don't want to make this a action is because I want to have auto publish ONLY on signed commits, and signing should be done by my "hardware" key (e.g. a Yubikey).

Auto update CONTRIBUTORS, CHANGELOG on merging a PR.

On possible approach:

  • grab PR author, title and URL, and add it to .PRS.json.
  • generate new CONTRIBUTORS.md from .PRS.json
  • add author/title to the unpublished section in CHANGELOG.md

Some things should be noted:

  1. no entries in CONTRIBUTORS for my commits ;-)
  2. .PRS.json exists for three reasons:
    • We don't want to need to iterate over all past merged PR's every merge.
    • We don't want changes to the PR title after merge to take affect.
    • We want to be able to prune older messages (maybe in the future) and also to
      potentially do things like fix spelling errors.
  3. The modification to CHANGELOG.md is just a prefill and likely might be modified.

Do checks on PR's

  1. check cargo fmt (require fmt for merge)
  2. do clippy deny(warnings) run
  3. check if it compiles (different feature combies)
  4. run tests (different feature combies)
  5. ??cargo audit or similar??
  6. ??cargo code cov > requirement??
  7. validate tags

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.