Skip to content
This repository has been archived by the owner on Aug 29, 2023. It is now read-only.

[WIP] Unified CI 2.0 #537

Closed
wants to merge 28 commits into from
Closed

[WIP] Unified CI 2.0 #537

wants to merge 28 commits into from

Conversation

galargh
Copy link
Contributor

@galargh galargh commented Jul 20, 2023

This branch should reflect Unified CI 2.0 vision (see pl-strflt/ipdx#87).

All PRs related to that vision should be merged into this branch.

Additionally, the description of this PR should include all the instructions for rolling out Unified CI 2.0.


How to roll out Unified CI 2.0?

  1. Run .github/workflows/dispatch.yml with:
    • script: delete-templates.sh
    • inputs: {"files": [".github/workflows/automerge.yml"]}
  2. Release v1.0.0 of Unified CI
  3. Protect master and release/* branches
  4. Update https://github.com/ipfs/bifrost-gateway/blob/0a3ddaea111db3efec036c6caaa85a80fdcc61d4/.github/workflows/docker-image.yml#L40
  5. Remove legacy copies of read-config, release-check, releaser and tagpush once everyone's on Unified CI 2.0
  6. Ensure web3-bot has write access ONLY to repos from legacy configs
  7. Create uci.yml in Gateway Conformance where files is overwritten to go-test.yml and go-check.yml only, and deploy_versioning to false
  8. Implement add uCI to new repositories in GitHub Management]
  9. Close all web3-bot/sync branches

galargh and others added 23 commits February 23, 2023 14:07
* feat: allow disabling coverage and shuffle

* fix: go-test template

* feat: introduce step specific GOFLAGS
* feat: run go test/check on PR or push to default/protected branch

* fix: copy workflow

* chore: prep github context earlier

* fix: .github/workflows/copy-workflow.yml

* feat: specify shell in the copy workflow to get -eo pipefail
Co-authored-by: Jorropo <jorropo.pgm@gmail.com>
* feat: create scheduled workflow which merges web3-bot PRs

* chore: clean up automerge.yml

* chore: rewrite merge-prs using github-script

* chore: rewrite create-prs using github-script

* feat: create workflow which can delete workflows

* ci: expand logging

* fix: pr related github scripts

* fix: job names in delete workflow
* feat: turn all template workflows into reusable workflows

* feat: pin each workflow call in templates to a released version

* chore: remove uCI templating from reusable workflows

* chore: cherry-pick go-test and js-test-and-release from target
* feat: add changelog driven release workflow to unified CI

* feat: add support for release branches

* feat: create release branches for new releases

* Revert "feat: create release branches for new releases"
* chore: remove obsolete scripts

* feat: add standalone template rendering script

* ci: render YAML templates before checking their correctness

* fix: render template script name

* fix: export context for template rendering

* ci: show rendered templates on stdout

* fix: context in check yaml

* fix: go test template
* feat: add read-go-mod action

* feat: do not hardcode Go version in workflows

* fix: parse go-mod outputs with fromJSON

* fix: update ref to read-go-mod action

* fix: use msys2 bash in go-test

* fix: go matrix in go test reusable workflow
)

* feat: set permissions required by distributed workflows explicitly

* fix: move permissions blocks to templates
* ci: try avoiding force pushes when possible

* fix: replace merge with a rebase
…ws (#542)

* chore: move shared workflows and actions to shared directory

* chore: move bash scripts to the scripts directory

* fix: references to moved resources

* fix: symlink already referenced resources at their old paths
…ld locations (#543)

* Revert "fix: symlink already referenced resources at their old paths"

This reverts commit 0398ab5.

* fix: copy already distributed shared workflows and actions to their old locations
* feat: read config from uci.yml in target repo

* chore: remove configs

* chore: remove check configs

* chore: remove stale repos

* chore: remove add unified ci to new go repos

* feat: infer targets by write access
* chore: do not remove other CI on initial workflow deployment

* chore: remove custom copying of version.json

* feat: make copy workflow ready for running different scripts

* chore: rewrite copy-workflow-go as a bash script

* fix: make scripts executable

* feat: add support for inputs in dispatch

* chore: rename copy workflow

* feat: allow creating/merging PRs from different branches

* chore: move process to shared

* feat: generalise copy-workflow to cover update-go and delete-templates too

* fix: create version.json only once

* fix: use local reusable workflow
galargh and others added 4 commits July 27, 2023 15:52
* feat: do not hardcode uCI version

* fix: example context

* fix: inputs parsing in dispatch

* fix: render templates for the yaml check
* feat: by default perform dependabot-like updates only

* feat: skip web3-bot updates if dependabot is configured

---------

Co-authored-by: dependabot <dependabot@github.com>
Co-authored-by: dependabot <dependabot@github.com>
@galargh
Copy link
Contributor Author

galargh commented Aug 10, 2023

This PR has been merged to the main branch of a fork - https://github.com/pl-strflt/uci. This way we can keep the old Unified CI repo as it was. It will simplify the transition (no need to keep track of who's already migrated and who did not). And it will give us more flexibility to manage uCI in the future (higher level access to org administration in pl-strflt org).

@galargh galargh closed this Aug 10, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant