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

workflows: nightly build updates and regular release cadence #4875

Open
patrick-stephens opened this issue Feb 21, 2022 · 6 comments
Open

workflows: nightly build updates and regular release cadence #4875

patrick-stephens opened this issue Feb 21, 2022 · 6 comments
Assignees

Comments

@patrick-stephens
Copy link
Contributor

patrick-stephens commented Feb 21, 2022

Once 1.9 release is out we want to move to a regular nightly build that produces a floating unstable tag.
We also want to support building from a branch (e.g. master or 1.9) without a tag and then creating a new tag (e.g. for 1.9.1) at the end of the process once we're happy.

We also need to distinguish the version we build from (i.e. the commit/branch) from the version we're creating (i.e. the tag/release for a new official version).
Currently the process is all assuming the current workflow of building tag X to make release X.

We want to move to commit rather than tag-based release process:

  • Regularly build (nightly) latest commit on master
  • Create a new/updated unstable Github release for this with all artefacts - derisked already.
  • Update testing to use this unstable release URL for artefacts and containers.
  • On successful testing move to staging as "ready to release" - plus this can then trigger performance ad resilience tests.
  • The current release workflow will then take from staging (currently implemented) and create the tag (new).

The last step can also be automated to have a regular release cadence a well.
The goal is to always have something ready to release, i.e. the last green staging build.

There are some additional changes to get in here, e.g. update the containers to build from a commit rather than a tarball of the last tagged version.
This is already underway though for the multi-arch containers as well.

Currently the staging approach uses an S3 bucket and will overwrite this with the nightly build.
This update will simplify this so only "good" builds are in staging plus reduce S3 transfer costs.

Overview

graph TD
    direction LR
    Commit[Commit] -->|Cron - nightly| Unstable(Unstable)
    Unstable --> Testing{Testing}
    Testing -->|Passes| Staging(Staging)
    Testing -->|Fails| Commit
    Staging -->|Cron - weekly| Release(Release)
    Release -->|Update next version| Commit
Loading

As you can see, we should always have something to release from staging - if testing fails it does not go into staging. We can then just push whatever is in staging out to release.

Tasks

@patrick-stephens
Copy link
Contributor Author

We can also integrate the changes for #4845 as part of this.

@patrick-stephens
Copy link
Contributor Author

#5098 is part of this to remove any need to interact with the legacy server.

@alrz
Copy link

alrz commented Jun 11, 2024

Would there be any nightly image? I wanted to try out some recent otlp fixes to see if it addressed some of my issues before 3.1 release.

@patrick-stephens
Copy link
Contributor Author

Yes: ghcr.io/fluent/fluent-bit/unstable:master
See https://github.com/fluent/fluent-bit/actions/runs/9477546453/job/26112305225

All pushes to master also build a container: https://github.com/fluent/fluent-bit/tree/master/dockerfiles#ghcrio-topology

@edsiper
Copy link
Member

edsiper commented Aug 16, 2024

@patrick-stephens is this ok to close ?

@patrick-stephens
Copy link
Contributor Author

We have nightly builds but no regular release cadence, it's still on-demand I think.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants