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

Use GH actions for build/release - rancher/rancher #425

Closed
29 tasks done
Tracked by #375
tashima42 opened this issue May 9, 2024 · 3 comments
Closed
29 tasks done
Tracked by #375

Use GH actions for build/release - rancher/rancher #425

tashima42 opened this issue May 9, 2024 · 3 comments

Comments

@tashima42
Copy link
Contributor

tashima42 commented May 9, 2024

Migrate http://github.com/rancher/rancher to GH Actions

Tasks:

  • Map components and scripts using Drone @rafaelbreno
  • Map Drone steps and triggers @tashima42
  • Map secrets @rafaelbreno
  • Create issue in https://github.com/rancherlabs/eio/ to migrate secrets @rafaelbreno
  • Migrate release/v2.7
    • PR
    • Push on master or release branches
    • Tag
    • Create patch files to be applied to debug releases
    • Promote
    • Integration Tests
    • Provisioning tests
  • Migrate release/v2.8
    • PR
    • Push on master or release branches
    • Tag
    • Create patch files to be applied to debug releases
    • Promote
    • Integration Tests
    • Provisioning tests
  • Migrate release/v2.9
    • PR
    • Push on master or release branches
    • Tag
    • Create patch files to be applied to debug releases
    • Promote
    • Integration Tests
    • Provisioning tests
  • Investigate how to remove Dapper from our build stack
@rafaelbreno
Copy link
Contributor

rafaelbreno commented May 9, 2024

[rancher/rancher] Drone to GHA migration

Scripts mentioning Drone:

  • scripts/create-components-file.sh
  • scripts/generate-linux-digest.sh
  • scripts/only-ui-bump.sh
  • scripts/promote-docker-image.sh
  • scripts/run
  • scripts/version
  • scripts/chart/copy
  • scripts/chart/promote-to-stable.sh
  • scripts/chart/promote-to-stable.sh
  • scripts/check-release-images-exist.sh
  • scripts/windows/package.ps1
  • scripts/windows/version.ps1
  • Dockerfile.dapper
  • Dockerfile-windows.dapper

Secrets from_secret

  • FOSSA_API_KEY
  • docker_password
  • docker_username
  • github_token
  • google_auth_key
  • stage_registry_password
  • stage_registry_username
  • prime_artifacts_uploader-access_key
  • prime_artifacts_uploader-secret_key
  • optimus_charts_access_key
  • optimus_charts_secret_key

@tashima42
Copy link
Contributor Author

tashima42 commented May 9, 2024

GitHub Workflows

⚠️ Steps are not in order yet ⚠️

Pull Request

  • provisioning-tests-k3s -> provisioning-tests-pr
  • provisioning-tests-rke2 -> provisioning-tests-pr
  • provisioning-operations-tests-k3s -> provisioning-operations-tests-pr
  • provisioning-operations-test-setA-rke2 -> provisioning-operations-tests-pr
  • provisioning-operations-test-setB-rke2 -> provisioning-operations-tests-pr
  • default-linux-amd64 -> build-pr
  • default-linux-arm64 -> build-pr
  • default-windows-1809 -> build-pr
  • default-windows-ltsc2022 -> build-pr
  • integration tests

Push on Master or Release Branches

  • provisioning-tests-k3s -> provisioning-tests-push
  • provisioning-tests-rke2 -> provisioning-tests-push
  • provisioning-operations-tests-k3s -> provisioning-operations-tests-push
  • provisioning-operations-test-setA-rke2 -> provisioning-operations-tests-push
  • provisioning-operations-test-setB-rke2 -> provisioning-operations-tests-push
  • default-linux-amd64 -> build-push-tag
  • default-linux-amd64 -> fossa-amd64 (this step always fails, will implement it later)
  • default-linux-amd64 -> stage-binaries
  • default-linux-amd64 -> docker-publish-head
  • default-linux-amd64 -> docker-publish-head-installer
  • default-linux-amd64 -> docker-publish-head-agent
  • default-linux-arm64 -> build-push-tag
  • default-linux-arm64 -> stage-binaries
  • default-linux-arm64 -> docker-publish-head
  • default-linux-arm64 -> docker-publish-head-installer
  • default-linux-arm64 -> docker-publish-head-agent
  • default-windows-1809 -> build-push-tag
  • default-windows-1809 -> stage-binaries
  • default-windows-1809 -> docker-publish-head-agent
  • default-windows-ltsc2022 -> build-push-tag
  • default-windows-ltsc2022 -> stage-binaries
  • default-windows-ltsc2022 -> docker-publish-head-agent
  • manifest -> push-installer-manifest
  • manifest -> push-installer-manifest-head
  • manifest -> push-agent-manifest
  • manifest -> push-agent-manifest-head
  • manifest -> push-manifest-head
  • manifest -> push-manifest
  • manifest -> build-chart
  • integration tests

Tag Creation

  • default-linux-amd64 -> build-push-tag
  • default-linux-amd64 -> fossa-amd64 (this step always fails, maybe we should remove it)
  • default-linux-amd64 -> stage-binaries
  • default-linux-amd64 -> docker-publish
  • default-linux-amd64 -> docker-publish-agent
  • default-linux-amd64 -> github_binary_prerelease (Only pre-releases)
  • default-linux-amd64 -> github_binary_release (Only GA releases)
  • default-linux-amd64 -> check-release-images-exists (won't do, the generate images digests step will fail if any image is missing from the registry)
  • default-linux-arm64 -> build-push-tag
  • default-linux-arm64 -> stage-binaries
  • default-linux-arm64 -> docker-publish
  • default-linux-arm64 -> docker-publish-installer
  • default-linux-arm64 -> docker-publish-agent
  • default-windows-1809 -> build-push-tag
  • default-windows-1809 -> stage-binaries
  • default-windows-1809 -> docker-publish-agent
  • default-windows-ltsc2022 -> build-push-tag
  • default-windows-ltsc2022 -> stage-binaries
  • default-windows-ltsc2022 -> docker-publish-agent
  • manifest -> push-installer-manifest
  • manifest -> push-agent-manifest
  • manifest -> push-manifest
  • manifest -> build-chart
  • manifest -> chart-publish
  • docker-image-digests-linux -> docker-image-digests
  • docker-image-digests-linux -> github_binary_release_digests
  • docker-image-digests-windows-1809 -> docker-image-digests
  • docker-image-digests-windows-ltsc2022 -> docker-image-digests
  • integration tests

Promote
There should be two versions, one for stable and the other for latest.

  • publish -> chart-promote
  • publish -> chart-publish
  • publish -> docker-image-promote

Drone Pipelines

Expand

provisioning-tests-k3s

Label Value
Pipeline provisioning-tests-k3s
Name provisioning-tests-pr
Platform linux-amd64
Triggers Pull Requests
Instance All
Label Value
Pipeline provisioning-tests-k3s
Name provisioning-tests-push
Platform linux-amd64
Triggers Push on master or release branches
Instance drone-publish.rancher.io

provisioning-tests-rke2

Label Value
Pipeline provisioning-tests-rke2
Name provisioning-tests-pr
Platform linux-amd64
Triggers Pull Requests
Instance All
Label Value
Pipeline provisioning-tests-rke2
Name provisioning-tests-push
Platform linux-amd64
Triggers Push on master or release branches
Instance drone-publish.rancher.io

provisioning-operations-tests-k3s

Label Value
Pipeline provisioning-operations-tests-k3s
Name provisioning-operations-tests-pr
Platform linux-amd64
Triggers Pull Requests
Instance All
Label Value
Pipeline provisioning-operations-tests-k3s
Name provisioning-operations-tests-push
Platform linux-amd64
Triggers Push on master or release branches
Instance drone-publish.rancher.io

provisioning-operations-test-setA-rke2

Label Value
Pipeline provisioning-operations-test-setA-rke2
Name provisioning-operations-tests-pr
Platform linux-amd64
Triggers Pull Requests
Instance All
Label Value
Pipeline provisioning-operations-test-setA-rke2
Name provisioning-operations-tests-push
Platform linux-amd64
Triggers Push on master or release branches
Instance drone-publish.rancher.io

provisioning-operations-test-setB-rke2

Label Value
Pipeline provisioning-operations-test-setB-rke2
Name provisioning-operations-tests-pr
Platform linux-amd64
Triggers Pull Requests
Instance All
Label Value
Pipeline provisioning-operations-test-setB-rke2
Name provisioning-operations-tests-push
Platform linux-amd64
Triggers Push on master or release branches
Instance drone-publish.rancher.io

default-linux-amd64

Label Value
Pipeline default-linux-amd64
Name build-pr
Platform linux-amd64
Triggers Pull Requests
Instance All
Label Value
Pipeline default-linux-amd64
Name build-push-tag
Platform linux-amd64
Triggers Push on master or release branches or tag creation
Instance drone-publish.rancher.io
Label Value
Pipeline default-linux-amd64
Name fossa-amd64
Platform linux-amd64
Triggers Push on master or release branches or tag creation
Instance drone-publish.rancher.io
Label Value
Pipeline default-linux-amd64
Name stage-binaries
Platform linux-amd64
Triggers Push on master or release branches or tag creation
Instance drone-publish.rancher.io
Label Value
Pipeline default-linux-amd64
Name docker-publish-head
Platform linux-amd64
Triggers Push on master or release branches
Instance All
Label Value
Pipeline default-linux-amd64
Name docker-publish-head-installer
Platform linux-amd64
Triggers Push on master or release branches
Instance All
Label Value
Pipeline default-linux-amd64
Name docker-publish-head-agent
Platform linux-amd64
Triggers Push on master or release branches
Instance All
Label Value
Pipeline default-linux-amd64
Name docker-publish
Platform linux-amd64
Triggers Tag
Instance All
Label Value
Pipeline default-linux-amd64
Name docker-publish-agent
Platform linux-amd64
Triggers Tag
Instance All
Label Value
Pipeline default-linux-amd64
Name github_binary_prerelease
Platform linux-amd64
Triggers Pre-release tag creation
Instance All
Label Value
Pipeline default-linux-amd64
Name github_binary_release
Platform linux-amd64
Triggers GA tag creation
Instance All
Label Value
Pipeline default-linux-amd64
Name check-release-images-exists
Platform linux-amd64
Triggers Tag
Instance drone-publish.rancher.io

default-linux-arm64

Label Value
Pipeline default-linux-arm64
Name build-pr
Platform linux-arm64
Triggers Pull requests
Instance All
Label Value
Pipeline default-linux-arm64
Name build-push-tag
Platform linux-arm64
Triggers Push on master or release branches or tag creation
Instance drone-publish.rancher.io
Label Value
Pipeline default-linux-arm64
Name stage-binaries
Platform linux-arm64
Triggers Push on master or release branches or tag creation
Instance drone-publish.rancher.io
Label Value
Pipeline default-linux-arm64
Name docker-publish-head
Platform linux-arm64
Triggers Push on master or release branches
Instance All
Label Value
Pipeline default-linux-arm64
Name docker-publish-head-installer
Platform linux-arm64
Triggers Push on master or release branches
Instance All
Label Value
Pipeline default-linux-arm64
Name docker-publish-head-agent
Platform linux-arm64
Triggers Push on master or release branches
Instance All
Label Value
Pipeline default-linux-arm64
Name docker-publish
Platform linux-arm64
Triggers Tag Creation
Instance All
Label Value
Pipeline default-linux-arm64
Name docker-publish-installer
Platform linux-arm64
Triggers Tag Creation
Instance All
Label Value
Pipeline default-linux-arm64
Name docker-publish-agent
Platform linux-arm64
Triggers Tag Creation
Instance All

default-windows-1809

Label Value
Pipeline default-windows-1809
Name build-pr
Platform windows-amd64 v1809
Triggers Pull Request
Instance All
Label Value
Pipeline default-windows-1809
Name build-push-tag
Platform windows-amd64 v1809
Triggers Push on master or release branches or tag creation
Instance drone-publish.rancher.io
Label Value
Pipeline default-windows-1809
Name stage-binaries
Platform windows-amd64 v1809
Triggers Push on master or release branches or tag creation
Instance drone-publish.rancher.io
Label Value
Pipeline default-windows-1809
Name docker-publish-head-agent
Platform windows-amd64 v1809
Triggers Push on master or release branches
Instance drone-publish.rancher.io
Label Value
Pipeline default-windows-1809
Name docker-publish-agent
Platform windows-amd64 v1809
Triggers Tag Creation
Instance All

default-windows-ltsc2022

Label Value
Pipeline default-windows-ltsc2022
Name build-pr
Platform windows-amd64 ltsc2022
Triggers Pull Request
Instance All
Label Value
Pipeline default-windows-ltsc2022
Name build-push-tag
Platform windows-amd64 ltsc2022
Triggers Push on master or release branches or tag creation
Instance drone-publish.rancher.io
Label Value
Pipeline default-windows-ltsc2022
Name stage-binaries
Platform windows-amd64 ltsc2022
Triggers Push on master or release branches or tag creation
Instance drone-publish.rancher.io
Label Value
Pipeline default-windows-ltsc2022
Name docker-publish-head-agent
Platform windows-amd64 ltsc2022
Triggers Push on master or release branches
Instance drone-publish.rancher.io
Label Value
Pipeline default-windows-ltsc2022
Name docker-publish-agent
Platform windows-amd64 ltsc2022
Triggers Tag Creation
Instance All

manifest

depends_on:

  • default-linux-amd64
  • default-linux-arm64
  • default-windows-1809
  • default-windows-ltsc2022
Label Value
Pipeline manifest
Name push-installer-manifest
Platform linux-amd64
Triggers Push on master or release branches or tag creation
Instance drone-publish.rancher.io
Label Value
Pipeline manifest
Name push-installer-manifest-head
Platform linux-amd64
Triggers Push on master or release branches
Instance drone-publish.rancher.io
Label Value
Pipeline manifest
Name push-agent-manifest
Platform linux-amd64
Triggers Push on master or release branches or tag creation
Instance drone-publish.rancher.io
Label Value
Pipeline manifest
Name push-agent-manifest-head
Platform linux-amd64
Triggers Push on master or release branches
Instance drone-publish.rancher.io
Label Value
Pipeline manifest
Name push-manifest-head
Platform linux-amd64
Triggers Push on master or release branches
Instance drone-publish.rancher.io
Label Value
Pipeline manifest
Name push-manifest
Platform linux-amd64
Triggers Push on master or release branches or tag creation
Instance drone-publish.rancher.io
Label Value
Pipeline manifest
Name build-chart
Platform linux-amd64
Triggers Push on master or release branches or tag creation
Instance drone-publish.rancher.io
Label Value
Pipeline manifest
Name chart-publish
Platform linux-amd64
Triggers Tag
Instance All

docker-image-digests

depends_on:

  • default-linux-amd64
  • default-linux-arm64
Label Value
Pipeline docker-image-digests-linux
Name docker-image-digests
Platform linux-amd64
Triggers Tag
Instance drone-publish.rancher.io
Label Value
Pipeline docker-image-digests-linux
Name github_binary_release_digests
Platform linux-amd64
Triggers Tag
Instance drone-publish.rancher.io

docker-image-digests-windows-1809

depends_on:

  • default-linux-amd64
  • default-windows-1809
Label Value
Pipeline docker-image-digests-windows-1809
Name docker-image-digests
Platform windows-amd64 v1809
Triggers Tag
Instance drone-publish.rancher.io

docker-image-digests-windows-ltsc2022

depends_on:

  • default-linux-amd64
  • default-windows-ltsc2022
Label Value
Pipeline docker-image-digests-windows-ltsc2022
Name docker-image-digests
Platform windows-amd64 ltsc2022
Triggers Tag
Instance drone-publish.rancher.io

publish

Label Value
Pipeline publish
Name chart-promote
Platform linux-amd64
Triggers Promote (Workflow Dispatch)
Instance All
Label Value
Pipeline publish
Name chart-publish
Platform linux-amd64
Triggers Promote (Workflow Dispatch)
Instance All

promote-docker-image

Label Value
Pipeline publish
Name docker-image-promote
Platform linux-amd64
Triggers Promote (Workflow Dispatch)
Instance All

@rafaelbreno
Copy link
Contributor

created issue for secrets & docker images access: #2273

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