Skip to content

Ci extract lxd platforms specifics to lxd scheduled job - #7047

Draft
blackboxsw wants to merge 6 commits into
canonical:mainfrom
blackboxsw:ci-extract-lxd-platforms-specifics-to-lxd-scheduled-job
Draft

Ci extract lxd platforms specifics to lxd scheduled job#7047
blackboxsw wants to merge 6 commits into
canonical:mainfrom
blackboxsw:ci-extract-lxd-platforms-specifics-to-lxd-scheduled-job

Conversation

@blackboxsw

@blackboxsw blackboxsw commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Blocked by #6969. move workflow LXD-specific into lxd scheduled jobs.

Proposed Commit Message

refactor(ci): move LXD setup into lxd-specific scheduled workflows

The shared integration-test composite action is consumed by LXD,
EC2, Azure, and OCI workflows. Move the LXD snap setup out of the
composite action (where it was conditionally skipped for non-LXD
platforms) and into the eight lxd_container / lxd_vm daily scheduled
workflows, which are inherently LXD-specific and no longer need the
platform conditional.

Additional Context

only topmost commit is reviewable for this PR.
Awaiting closure on #6969 before merging this branch.

Test Steps

validation run on separate remote

Merge type

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

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
Replace the reusable workflow .github/workflows/100-dispatch-common.yml
with a composite action .github/actions/integration-test that contains
the shared integration-test steps (secret assertion, checkout, LXD/SSH/
pycloudlib setup, tox run, report publish, cleanup). OCI-specific secret
validation and credential setup are pulled out of the common path and
moved into steps within each 15*oci.yml scheduled workflow, which write
the OCI config/key to $RUNNER_TEMP/oci before invoking the composite
action. All 16 scheduled integration workflows (4 OCI, 4 EC2, 8 LXD)
now call the composite action directly with job-level env secret
mappings, matching the repo's existing composite-action convention
(.github/actions/create-sru-bug). Behavior is preserved; the
canonical/cloud-init repository guard moves from the reusable workflow
job onto each calling job.
The 15*oci.yml workflows run OCI-specific steps before invoking the
local composite action ./.github/actions/integration-test. GitHub
requires action.yml to exist on the runner to load a local action, so
actions/checkout must run first. Add a Checkout step at the top of each
OCI workflow's job, ahead of the OCI secret assertion and credential
setup steps.
The runner context is not available inside a composite action's runs
section at manifest-load time, so ${{ runner.temp }} expressions in
.github/actions/integration-test/action.yml caused workflow dispatch to
fail with "Unrecognized named-value: 'runner'". Add a required
runner_temp input to the composite action and replace its internal
${{ runner.temp }} references with ${{ inputs.runner_temp }}. All 16
caller workflows now pass runner_temp: ${{ runner.temp }} (the runner
context is available in workflow jobs).
@blackboxsw
blackboxsw requested a review from holmanb August 26, 2026 21:03
The shared integration-test composite action is consumed by LXD,
EC2, Azure, and OCI workflows. Move the LXD snap setup out of the
composite action (where it was conditionally skipped for non-LXD
platforms) and into the eight lxd_container / lxd_vm daily scheduled
workflows, which are inherently LXD-specific and no longer need the
platform conditional.
@blackboxsw
blackboxsw force-pushed the ci-extract-lxd-platforms-specifics-to-lxd-scheduled-job branch from 759afc0 to 71ceaf9 Compare August 26, 2026 21:12
@@ -0,0 +1,137 @@
name: Run cloud-init integration tests

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the relationship between this file and the dispatch-common file? It looks like the dispatch-common is now only used by Azure - is that expected?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was an unintentional oversight in #6969. I've since pushed a commit to drop the azure use of 100-dispatch-common.yml this should not be part of this PR delta. I'll set this to draft until #6969 lands so I can be sure there isn't any unwanted delta here.

echo "ERROR: Missing required repo secret. Please provide SSH_PRIVATE_KEY repo secret at ${{ github.repository }}/settings/secrets/actions."
exit 1
fi
if [ "$CLOUD_INIT_PLATFORM" = "oci" ]; then

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't look like the OCI job uses this file.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was an oversight on #6969. I've dropped that appropriately on that PR. will set this draft until the OCI integration test pr lands.

@@ -0,0 +1,65 @@
name: "Twice weekly 22.04: oci"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we please reduce scope? Adding both OCI jobs and an action makes this more to review at once.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this PR I was attempting to queue a dependency where the review requirement was just the topmost commeit after 6969 lands. I've set it to draft to avoid you having to ignore the rest of the delta for the preliminary branch in this sequence.

@blackboxsw
blackboxsw marked this pull request as draft August 31, 2026 21:01
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.

2 participants