Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .github/actions/collect-fission-dump/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: 'Collect Fission Dump'
description: 'Collects Fission dump on job failure'
inputs:
workflow-name:
description: 'Name of the workflow'
required: true
runs:
using: "composite"
steps:
- name: Collect Fission Dump
shell: bash
run: |
command -v fission && fission support dump

- name: Archive fission dump
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.workflow-name }}-fission-dump
path: fission-dump/*.zip
retention-days: 5
53 changes: 53 additions & 0 deletions .github/actions/setup-cluster/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: 'Setup Fission Environment'
description: 'Sets up Helm, Kind cluster, Fission CLI, and completes base Fission setup'
inputs:
kind-node-image:
description: 'Kind node image to use'
required: false
default: 'kindest/node:v1.27.16'
kind-version:
description: 'Kind version to use'
required: false
default: 'v0.23.0'
helm-version:
description: 'Helm version to use'
required: false
default: 'v3.18.4'
kind-config:
description: 'Kind config file'
required: false
default: 'kind.yaml'
fission-cli-version:
description: 'Fission CLI version to install'
required: false
default: 'v1.21.0'
runs:
using: "composite"
steps:
- name: Helm
uses: Azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5
with:
version: ${{ inputs.helm-version }}

- name: Kind Cluster
uses: engineerd/setup-kind@v0.5.0
with:
image: ${{ inputs.kind-node-image }}
version: ${{ inputs.kind-version }}
config: ${{ inputs.kind-config }}

- name: Configuring and testing the Installation
shell: bash
run: |
kubectl cluster-info --context kind-kind
kind get kubeconfig >$HOME/.kube/config
kubectl get nodes

# Base Setup Steps (merged from fission-base-setup)
- name: Base Setup
shell: bash
run: |
make verify-kind-cluster
make install-fission-cli
Copy link

Copilot AI Aug 8, 2025

Choose a reason for hiding this comment

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

The 'make install-fission-cli' step is redundant since the Fission CLI is already installed in the previous step. This duplication could cause confusion or unexpected behavior.

Suggested change
make install-fission-cli

Copilot uses AI. Check for mistakes.
make install-skaffold
make create-crds
41 changes: 41 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# GitHub Actions Workflow for Fission Environments

This directory contains the GitHub Actions workflow configuration for building and testing Fission environments.

## Structure

- `environment.yaml`: Main workflow file that defines jobs for all environments
- `actions/`: Directory containing reusable composite actions
- `setup-cluster/`: Sets up Helm, Kind cluster, Fission CLI and runs the base Fission setup
- `collect-fission-dump/`: Collects and archives Fission dumps
- `filters/`: Contains path filters for detecting changes

## Composite Actions

The workflow uses two main composite actions to reduce duplication:

1. **setup-cluster**: Sets up the complete infrastructure needed for testing (Helm, Kind, Fission CLI) and performs base Fission setup steps
2. **collect-fission-dump**: Collects and archives Fission dumps on failure

## Environment Variables

All version pins are centralized in the `env` section of the main workflow file:

- `KIND_NODE_IMAGE`: Kind node image version
- `KIND_VERSION`: Kind tool version
- `HELM_VERSION`: Helm version
- `FISSION_CLI_VERSION`: Fission CLI version
- `KIND_CONFIG`: Path to Kind configuration
- `FISSION_VERSION`: Fission version

## Usage

The workflow is triggered on pull requests to the `master` branch. It first runs a change detection job to determine which environments have been modified, then runs the relevant jobs for those environments.

### Adding a New Environment

To add a new environment:

1. Add the environment to the `check` job's outputs
2. Create a new job for the environment following the existing patterns
3. Add the environment to the filters configuration
Loading