Skip to content

feat(ci): add scheduled oci integration-test workflows - #6969

Open
blackboxsw wants to merge 1 commit into
canonical:mainfrom
blackboxsw:oci-integration-tests
Open

feat(ci): add scheduled oci integration-test workflows#6969
blackboxsw wants to merge 1 commit into
canonical:mainfrom
blackboxsw:oci-integration-tests

Conversation

@blackboxsw

Copy link
Copy Markdown
Collaborator

Proposed Commit Message

feat(ci): add scheduled oci integration-test workflows

Create oci workflow integration test coverage for Oracle on Ubuntu
Jammy, Noble, Resolute and Stonking scheduled twice-weekly:
 - Mon & Thu, cron '2 22 * * 1,4

Extend the shared 100-dispatch-common.yml workflow:
- add 'oci' to the workflow_dispatch platform choice list
- add two optional secrets PYCLOUDLIB_OCI_CONFIG_B64 / PYCLOUDLIB_OCI_KEY_B64 to workflow_call.secrets
- pass PYCLOUDLIB_OCI_CONFIG_FILE_PATH / PYCLOUDLIB_OCI_KEY_FILE_PATH to the Run integration Tests step env
- clean up the oci dir in the Clean pycloudlib step

Additional Context

Success run on individual oci creds: https://github.com/blackboxsw/cloud-init/actions/runs/30711239669

Test Steps

  1. Can adapt this PR to run on your own remote:
sed -i 's/canonical\/cloud-init/YOUR_GHUSERNAME\/cloud-init/' .github/workflows/100-common-dispatch.yml
git commit -am 'WIP: adapt to run integration tests on my github remote'
git push YOUR_REMOTE THIS_BRANCH:main # --force to ensure github actions on your remote can be run directly from /github.com/YOUR_REMOTE/cloud-init/actions 
  1. provide base64 encoded pycloudlib.toml with an [oci] section documenting your config
[oci]
config_path = "$OCI_CONFIG_FILE_PATH"
region = "us-...-1"
availability_domain = "qIZq:......."
compartment_id = "ocid1.compartment......."
public_key_path = "~/.ssh/cloudinit_id_rsa.pub"
vcn_name = "default"
  1. Add action SECRETS to your remote to test workflow https://github.com/YOUR_REMOTE/cloud-init/settings/secrets/actions
  • Create an oci config file via new API Keys from cloud.oracle.com
    PYCLOUDLIB_OCI_CONFIG_B64 # Copy value from: cat oci.config | base64 -w 0

  • Grab private key pem from cloud.oracle.com
    PYCLOUDLIB_OCI_KEY_B64 # Copy value from: cat your-team-login-date*pem | base64 -w 0

  • PYCLOUDLIB_TOML_B64 # copy value from cat pycloudlib.toml | base64 -w 0

SSH_PRIVATE_KEY # Copy shared CI private key used for all integration tests
SSH_PUBLIC_KEY # ditto public key

Merge recommendations

  • Squash merge using "Proposed Commit Message"
  • Rebase and merge unique commits. Requires commit messages per-commit each referencing the pull request number (#<PR_NUM>)

@blackboxsw
blackboxsw requested a review from holmanb August 1, 2026 19:27
Create oci workflow integration test coverage for Oracle on Ubuntu
Jammy, Noble, Resolute and Stonking scheduled twice-weekly:
 - Mon & Thu, cron '2 22 * * 1,4

Extend the shared 100-dispatch-common.yml workflow:
- add 'oci' to the workflow_dispatch platform choice list
- add two optional secrets PYCLOUDLIB_OCI_CONFIG_B64 /
  PYCLOUDLIB_OCI_KEY_B64 to workflow_call.secrets
- pass PYCLOUDLIB_OCI_CONFIG_FILE_PATH / PYCLOUDLIB_OCI_KEY_FILE_PATH to
  the Run integration Tests step env
- clean up the oci dir in the Clean pycloudlib step
@blackboxsw
blackboxsw force-pushed the oci-integration-tests branch from fe9cbc3 to a6fc21c Compare August 1, 2026 19:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant