johanhelsing / matchbox

Painless peer-to-peer WebRTC networking for rust wasm (and native!)
Apache License 2.0
864 stars 70 forks source link

Automate releases #372

Open johanhelsing opened 9 months ago

johanhelsing commented 9 months ago

It would be good if there were fewer manual steps involved in releasing.

Current manual steps:

  1. Update bevy version support table in readme
  2. Release on crates.io
    cargo release minor -p matchbox_socket -p matchbox_protocol -p matchbox_server -p matchbox_signaling -p bevy_matchbox --execute
  3. Tag commit with simple prefix (e.g. v0.9.0)
    git tag v0.9.0
    git push origin v0.9.0
  4. Push matchbox_server docker image to dockerhub
    docker pull ghcr.io/johanhelsing/matchbox/matchbox_server:v0.9.0
    docker image tag ghcr.io/johanhelsing/matchbox/matchbox_server:v0.9.0 jhelsing/matchbox-server:v0.9.0
    docker image tag jhelsing/matchbox-server:v0.9.0 jhelsing/matchbox-server:latest
    docker push jhelsing/matchbox-server:v0.9.0
    docker push jhelsing/matchbox-server:latest
  5. Publish new example builds (some work done in #212 )
  6. Publish github release (this should perhaps be manual, the merge list is usually quite noisy)
simbleau commented 9 months ago

Best to do these steps in a GitHub Action triggered on a "v*" release. This is what I do to publish packages, e.g. https://github.com/vectorgameexperts/bevy-async-task/blob/main/.github/workflows/release.yml

AgustinRamiroDiaz commented 6 months ago

@johanhelsing are you still interested in this? I could help with parts of this issue, with the approach that @simbleau proposed

simbleau commented 6 months ago

Sure!