Skip to content

Add configuration files for CI/CD and examples#1438

Open
highgroundbkk wants to merge 13 commits intogithub:mainfrom
highgroundbkk:main
Open

Add configuration files for CI/CD and examples#1438
highgroundbkk wants to merge 13 commits intogithub:mainfrom
highgroundbkk:main

Conversation

@highgroundbkk
Copy link
Copy Markdown

Pull Request Checklist

  • I have read and followed the CONTRIBUTING.md guidelines.
  • I have read and followed the Guidance for submissions involving paid services.
  • My contribution adds a new instruction, prompt, agent, skill, or workflow file in the correct directory.
  • The file follows the required naming convention.
  • The content is clearly structured and follows the example format.
  • I have tested my instructions, prompt, agent, skill, or workflow with GitHub Copilot.
  • I have run npm start and verified that README.md is up to date.
  • I am targeting the staged branch for this pull request.

Description


Type of Contribution

  • New instruction file.
  • New prompt file.
  • New agent file.
  • New plugin.
  • New skill file.
  • New agentic workflow.
  • Update to existing instruction, prompt, agent, plugin, skill, or workflow.
  • Other (please specify):

Additional Notes


By submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.

Copilot AI review requested due to automatic review settings April 18, 2026 10:10
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

⚠️ This PR targets main, but PRs should target staged.

The main branch is auto-published from staged and should not receive direct PRs.
Please close this PR and re-open it against the staged branch.

You can change the base branch using the Edit button at the top of this PR,
or run: gh pr edit 1438 --base staged

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds several GitHub Actions workflow files intended for CI/CD examples/templates and updates the GH CLI skill documentation with an additional extension install example.

Changes:

  • Added multiple GitHub Actions workflows (Webpack, Terraform, Labeler, Google GKE deploy, Deno, CodeQL).
  • Updated the gh-cli skill to include installation instructions for an additional GitHub CLI extension.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
skills/gh-cli/SKILL.md Adds an example command to install a GitHub CLI extension.
.github/workflows/webpack.yml Introduces a Node/Webpack workflow (currently malformed and not aligned with repo tooling).
.github/workflows/terraform.yml Introduces a Terraform workflow (currently malformed and not applicable to repo contents).
.github/workflows/label.yml Introduces a PR labeler workflow (currently malformed and missing required repo config).
.github/workflows/google.yml Introduces a GKE deploy workflow (contains trigger/config issues and a broken kustomize install step).
.github/workflows/deno.yml Introduces a Deno lint/test workflow (likely incompatible with this repo’s Node-based scripts).
.github/workflows/codeql.yml Introduces a CodeQL workflow (currently malformed YAML).

Comment on lines +91 to +93
- name: Terraform Apply
if: github.ref == 'refs/heads/"main"' && github.event_name == 'push'
run: terraform apply -auto-approve -input=false
Copy link

Copilot AI Apr 18, 2026

Choose a reason for hiding this comment

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

The apply guard will never match because github.ref for main is refs/heads/main, but the condition checks refs/heads/"main" (extra quotes). Update the ref comparison (and consider using github.ref_name == 'main' for clarity).

Copilot uses AI. Check for mistakes.
Comment on lines +77 to +87
# Initialize a new or existing Terraform working directory by creating initial files, loading any remote state, downloading modules, etc.
- name: Terraform Init
run: terraform init

# Checks that all Terraform configuration files adhere to a canonical format
- name: Terraform Format
run: terraform fmt -check

# Generates an execution plan for Terraform
- name: Terraform Plan
run: terraform plan -input=false
Copy link

Copilot AI Apr 18, 2026

Choose a reason for hiding this comment

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

This workflow runs terraform init/fmt/plan but the repository does not contain any .tf files, so the job will fail when it executes on main. If this is meant to be a reusable example, it should not be enabled in this repo’s CI (e.g. move it to documentation/examples or change on: to workflow_dispatch).

Copilot uses AI. Check for mistakes.
# Set up kustomize
- name: 'Set up Kustomize'
run: |-
curl -sfLo kustomize https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv5.4.3/kustomize_v5.4.3_linux_amd64.tar.gz
Copy link

Copilot AI Apr 18, 2026

Choose a reason for hiding this comment

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

The Kustomize install step downloads a .tar.gz archive but saves it as kustomize and then marks it executable without extracting it. This will fail when ./kustomize is executed. Download the correct binary or extract the archive before chmod/using it.

Suggested change
curl -sfLo kustomize https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv5.4.3/kustomize_v5.4.3_linux_amd64.tar.gz
curl -sfLo kustomize.tar.gz https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv5.4.3/kustomize_v5.4.3_linux_amd64.tar.gz
tar -xzf kustomize.tar.gz

Copilot uses AI. Check for mistakes.
Comment on lines +4 to +22
# To use this workflow, you will need to set up a .github/labeler.yml
# file with configuration. For more information, see:
# https://github.com/actions/labeler

name: Labeler
on: [pull_request_target]

jobs:
label:

runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write

steps:
- uses: actions/labeler@v4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
Copy link

Copilot AI Apr 18, 2026

Choose a reason for hiding this comment

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

This workflow requires a .github/labeler.yml configuration file (as noted in the header comment), but the repository does not contain one. As a result, the action will fail when it runs. Either add the corresponding .github/labeler.yml config or remove/disable this workflow (e.g., make it workflow_dispatch) until it’s configured.

Copilot uses AI. Check for mistakes.
Comment on lines +46 to +49
- language: actions
build-mode: none
- language: javascript-typescript
build-mode: none
Copy link

Copilot AI Apr 18, 2026

Choose a reason for hiding this comment

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

The matrix include list is mis-indented: the - language: entries need to be nested under include:. As written, this YAML is invalid and the workflow won’t load.

Suggested change
- language: actions
build-mode: none
- language: javascript-typescript
build-mode: none
- language: actions
build-mode: none
- language: javascript-typescript
build-mode: none

Copilot uses AI. Check for mistakes.
on:
push:
branches:
- '"main"'
Copy link

Copilot AI Apr 18, 2026

Choose a reason for hiding this comment

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

The branch filter is set to "main" (including quotes), so this workflow will never trigger on pushes to main. Use main (or 'main') as the branch name.

Suggested change
- '"main"'
- 'main'

Copilot uses AI. Check for mistakes.
Comment on lines +41 to +49
env:
PROJECT_ID: 'my-project' # TODO: update to your Google Cloud project ID
GAR_LOCATION: 'us-central1' # TODO: update to your region
GKE_CLUSTER: 'cluster-1' # TODO: update to your cluster name
GKE_ZONE: 'us-central1-c' # TODO: update to your cluster zone
DEPLOYMENT_NAME: 'gke-test' # TODO: update to your deployment name
REPOSITORY: 'samples' # TODO: update to your Artifact Registry docker repository name
IMAGE: 'static-site'
WORKLOAD_IDENTITY_PROVIDER: 'projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider' # TODO: update to your workload identity provider
Copy link

Copilot AI Apr 18, 2026

Choose a reason for hiding this comment

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

This workflow is written as a template (multiple TODO placeholders and assumes GKE manifests/kubectl access). Since it is enabled on push to main, it will run in this repository and fail unless fully configured. If the intent is to provide an example, consider moving it out of .github/workflows/ or changing on: to workflow_dispatch so it doesn’t execute by default.

Copilot uses AI. Check for mistakes.
Comment on lines +20 to +22
- uses: actions/labeler@v4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
Copy link

Copilot AI Apr 18, 2026

Choose a reason for hiding this comment

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

steps: is defined, but the - uses: entry is not indented under it, making the workflow YAML invalid. Indent the step list item(s) under steps: so GitHub Actions can parse the workflow.

Suggested change
- uses: actions/labeler@v4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
- uses: actions/labeler@v4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"

Copilot uses AI. Check for mistakes.
Comment on lines +39 to +42
run: deno lint

- name: Run tests
run: deno test -A
Copy link

Copilot AI Apr 18, 2026

Choose a reason for hiding this comment

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

This workflow runs deno lint from the repository root, but the repo contains Node.js scripts under eng/ that use Node globals like process (e.g. eng/update-readme.mjs), which deno lint will flag as undefined. If the intent is to lint a Deno project, scope the lint/test commands to a Deno-specific subdirectory (or add a deno.json with appropriate lint.files.include/exclude).

Suggested change
run: deno lint
- name: Run tests
run: deno test -A
run: deno lint --ignore=eng
- name: Run tests
run: deno test -A --ignore=eng

Copilot uses AI. Check for mistakes.
Comment on lines +67 to +93
# Checkout the repository to the GitHub Actions runner
- name: Checkout
uses: actions/checkout@v4

# Install the latest version of Terraform CLI and configure the Terraform CLI configuration file with a Terraform Cloud user API token
- name: Setup Terraform
uses: hashicorp/setup-terraform@v1
with:
cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }}

# Initialize a new or existing Terraform working directory by creating initial files, loading any remote state, downloading modules, etc.
- name: Terraform Init
run: terraform init

# Checks that all Terraform configuration files adhere to a canonical format
- name: Terraform Format
run: terraform fmt -check

# Generates an execution plan for Terraform
- name: Terraform Plan
run: terraform plan -input=false

# On push to "main", build or change infrastructure according to Terraform configuration files
# Note: It is recommended to set up a required "strict" status check in your repository for "Terraform Cloud". See the documentation on "strict" required status checks for more information: https://help.github.com/en/github/administering-a-repository/types-of-required-status-checks
- name: Terraform Apply
if: github.ref == 'refs/heads/"main"' && github.event_name == 'push'
run: terraform apply -auto-approve -input=false
Copy link

Copilot AI Apr 18, 2026

Choose a reason for hiding this comment

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

steps: is present but the subsequent step entries are not indented under it, which makes this workflow YAML invalid. Indent the - name: entries under steps: so the file parses correctly.

Suggested change
# Checkout the repository to the GitHub Actions runner
- name: Checkout
uses: actions/checkout@v4
# Install the latest version of Terraform CLI and configure the Terraform CLI configuration file with a Terraform Cloud user API token
- name: Setup Terraform
uses: hashicorp/setup-terraform@v1
with:
cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }}
# Initialize a new or existing Terraform working directory by creating initial files, loading any remote state, downloading modules, etc.
- name: Terraform Init
run: terraform init
# Checks that all Terraform configuration files adhere to a canonical format
- name: Terraform Format
run: terraform fmt -check
# Generates an execution plan for Terraform
- name: Terraform Plan
run: terraform plan -input=false
# On push to "main", build or change infrastructure according to Terraform configuration files
# Note: It is recommended to set up a required "strict" status check in your repository for "Terraform Cloud". See the documentation on "strict" required status checks for more information: https://help.github.com/en/github/administering-a-repository/types-of-required-status-checks
- name: Terraform Apply
if: github.ref == 'refs/heads/"main"' && github.event_name == 'push'
run: terraform apply -auto-approve -input=false
# Checkout the repository to the GitHub Actions runner
- name: Checkout
uses: actions/checkout@v4
# Install the latest version of Terraform CLI and configure the Terraform CLI configuration file with a Terraform Cloud user API token
- name: Setup Terraform
uses: hashicorp/setup-terraform@v1
with:
cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }}
# Initialize a new or existing Terraform working directory by creating initial files, loading any remote state, downloading modules, etc.
- name: Terraform Init
run: terraform init
# Checks that all Terraform configuration files adhere to a canonical format
- name: Terraform Format
run: terraform fmt -check
# Generates an execution plan for Terraform
- name: Terraform Plan
run: terraform plan -input=false
# On push to "main", build or change infrastructure according to Terraform configuration files
# Note: It is recommended to set up a required "strict" status check in your repository for "Terraform Cloud". See the documentation on "strict" required status checks for more information: https://help.github.com/en/github/administering-a-repository/types-of-required-status-checks
- name: Terraform Apply
if: github.ref == 'refs/heads/"main"' && github.event_name == 'push'
run: terraform apply -auto-approve -input=false

Copilot uses AI. Check for mistakes.
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.

3 participants