Compare commits

...

39 Commits

Author SHA1 Message Date
gitea-actions fce2468b2b chore: bump version [skip ci] 2026-06-05 21:25:12 +00:00
deac 30ff44c33b Merge branch 'main' of ssh://gitea.pixelparasol.com:4122/pixel-parasol-public/gitea-actions
/ publish (push) Successful in 7s
2026-06-05 17:24:54 -04:00
deac 11fd063f95 allow skip build artifact for node action 2026-06-05 17:24:49 -04:00
gitea-actions 70758f1d74 chore: bump version [skip ci] 2026-06-05 20:44:36 +00:00
deac 395bf58622 add additional args to test npm runs
/ publish (push) Successful in 7s
2026-06-05 16:44:27 -04:00
gitea-actions 358bf3b06f chore: bump version [skip ci] 2026-06-01 00:51:33 +00:00
deac 298834cd9f fix: remove kubeconfig cleanup from template and diff — kubeconfig must persist across pipeline steps
/ publish (push) Failing after 6s
2026-06-01 00:51:27 +00:00
deac a6dc98df0d fix: remove kubeconfig cleanup from template and diff — kubeconfig must persist across pipeline steps
/ publish (push) Successful in 7s
2026-06-01 00:51:26 +00:00
gitea-actions 04d506533e chore: bump version [skip ci] 2026-06-01 00:46:17 +00:00
deac a8797ceedb revert: restore base64 -d in kubectl/configure (fetch-secret outputs base64)
/ publish (push) Successful in 7s
2026-06-01 00:46:10 +00:00
gitea-actions c75c6f5172 chore: bump version [skip ci] 2026-06-01 00:38:34 +00:00
deac bac8715813 fix: accept plain YAML kubeconfig instead of base64-encoded
/ publish (push) Successful in 7s
2026-06-01 00:38:27 +00:00
gitea-actions 975efe3d37 chore: bump version [skip ci] 2026-05-31 23:39:13 +00:00
deac 87626040ca Merge branch 'main' of ssh://gitea.pixelparasol.com:4122/pixel-parasol-public/gitea-actions
/ publish (push) Successful in 7s
2026-05-31 19:39:02 -04:00
deac e7d71f95bf normalize the helm actions 2026-05-31 19:38:58 -04:00
gitea-actions 1d6a9e5763 chore: bump version [skip ci] 2026-05-31 23:15:26 +00:00
deac 2e9a99fe8f add tag prefix for docker images
/ publish (push) Successful in 7s
2026-05-31 19:15:15 -04:00
gitea-actions 107f3c70f5 chore: bump version [skip ci] 2026-05-29 17:34:33 +00:00
deac b394f79057 Merge branch 'main' of ssh://gitea.pixelparasol.com:4122/pixel-parasol-public/gitea-actions
/ publish (push) Successful in 7s
2026-05-29 13:34:22 -04:00
deac 8c99fa50a9 fix env vars 2026-05-29 13:34:18 -04:00
gitea-actions 6b7f573880 chore: bump version [skip ci] 2026-05-29 16:55:43 +00:00
deac b296b7af40 b64 that fucker so its one line
/ publish (push) Successful in 7s
2026-05-29 12:55:34 -04:00
gitea-actions 40dd6f9675 chore: bump version [skip ci] 2026-05-29 16:49:10 +00:00
deac 5b5522f3e0 Merge branch 'main' of ssh://gitea.pixelparasol.com:4122/pixel-parasol-public/gitea-actions
/ publish (push) Successful in 7s
2026-05-29 12:48:58 -04:00
deac 37b5363e63 testing 2026-05-29 12:48:54 -04:00
gitea-actions 188aa399a6 chore: bump version [skip ci] 2026-05-29 16:43:37 +00:00
deac 67072f822e Merge branch 'main' of ssh://gitea.pixelparasol.com:4122/pixel-parasol-public/gitea-actions
/ publish (push) Successful in 7s
2026-05-29 12:43:26 -04:00
deac 094e27b8ce mask kubeconfig 2026-05-29 12:43:21 -04:00
gitea-actions d33b5db759 chore: bump version [skip ci] 2026-05-29 16:35:20 +00:00
deac 98f5b830e2 Merge branch 'main' of ssh://gitea.pixelparasol.com:4122/pixel-parasol-public/gitea-actions
/ publish (push) Successful in 7s
2026-05-29 12:35:09 -04:00
deac 2b68567518 mask kubeconfig 2026-05-29 12:35:05 -04:00
gitea-actions 2a98963df8 chore: bump version [skip ci] 2026-05-29 16:30:56 +00:00
deac ea84f7e741 obfuscated kube contexts
/ publish (push) Successful in 7s
2026-05-29 12:30:47 -04:00
gitea-actions 62ee7dcb72 chore: bump version [skip ci] 2026-05-29 16:10:19 +00:00
deac 49a9d89b19 Merge branch 'main' of ssh://gitea.pixelparasol.com:4122/pixel-parasol-public/gitea-actions
/ publish (push) Successful in 7s
2026-05-29 12:10:08 -04:00
deac d40431fb35 combine helm image set and upgrade 2026-05-29 12:10:03 -04:00
gitea-actions 2e1c5764da chore: bump version [skip ci] 2026-05-29 15:58:10 +00:00
deac 67460d7eda Merge branch 'main' of ssh://gitea.pixelparasol.com:4122/pixel-parasol-public/gitea-actions
/ publish (push) Successful in 7s
2026-05-29 11:57:58 -04:00
deac e8dfe952ff add deployment tag path and reademes 2026-05-29 11:57:55 -04:00
26 changed files with 265 additions and 131 deletions
-1
View File
@@ -3,7 +3,6 @@ ACTIONS := \
node \
git/create_tag \
helm/diff \
helm/set_deployment_image \
helm/template \
helm/upgrade \
infisical/fetch-secret \
+1 -2
View File
@@ -21,9 +21,8 @@ Reusable composite actions for Gitea CI/CD pipelines.
| Action | Description |
|---|---|
| [helm/diff](helm/diff/README.md) | Diff a Helm chart against a running deployment |
| [helm/set_deployment_image](helm/set_deployment_image/README.md) | Set the image for a Kubernetes deployment via Helm |
| [helm/template](helm/template/README.md) | Render a Helm chart for a deployment |
| [helm/upgrade](helm/upgrade/README.md) | Log in to an OCI registry and run `helm upgrade` for the chart in the current directory |
| [helm/upgrade](helm/upgrade/README.md) | Log in to an OCI registry, update chart dependencies, and run `helm upgrade` |
### Infisical
+1 -1
View File
@@ -1 +1 @@
1.1.0
1.16.0
+1
View File
@@ -20,6 +20,7 @@ Build a Docker image and push it to the Gitea container registry
| `ARTIFACT_NAME` | <p>Name of the build artifact to download</p> | `false` | `dist` |
| `ARTIFACT_PATH` | <p>Destination path for the downloaded artifact</p> | `false` | `dist` |
| `TAG_LATEST` | <p>Also tag and push the image as latest</p> | `false` | `false` |
| `TAG_PREFIX` | <p>Optional prefix to prepend to IMAGE_TAG (e.g. 'dev' produces 'dev-&lt;tag&gt;'). Does not affect the latest tag.</p> | `false` | `""` |
| `WORKING_DIRECTORY` | <p>Working directory for the Docker build</p> | `false` | `.` |
<!-- action-docs-inputs source="action.yml" -->
+8 -1
View File
@@ -28,6 +28,9 @@ inputs:
TAG_LATEST:
description: "Also tag and push the image as latest"
default: "false"
TAG_PREFIX:
description: "Optional prefix to prepend to IMAGE_TAG (e.g. 'dev' produces 'dev-<tag>'). Does not affect the latest tag."
default: ""
WORKING_DIRECTORY:
description: "Working directory for the Docker build"
default: "."
@@ -51,7 +54,11 @@ runs:
- name: Docker Build and Push
shell: sh
run: |
TAGS="-t ${{ inputs.IMAGE_PATH }}:${{ inputs.IMAGE_TAG }}"
TAG="${{ inputs.IMAGE_TAG }}"
if [ -n "${{ inputs.TAG_PREFIX }}" ]; then
TAG="${{ inputs.TAG_PREFIX }}-${TAG}"
fi
TAGS="-t ${{ inputs.IMAGE_PATH }}:${TAG}"
if [ "${{ inputs.TAG_LATEST }}" = "true" ]; then
TAGS="$TAGS -t ${{ inputs.IMAGE_PATH }}:latest"
fi
+7
View File
@@ -0,0 +1,7 @@
# git
Composite actions for Git operations.
| action | description |
| --- | --- |
| [create_tag](create_tag/README.md) | Creates and pushes a git tag in the current repository |
+9
View File
@@ -0,0 +1,9 @@
# helm
Composite actions for managing Helm chart deployments.
| action | description |
| --- | --- |
| [diff](diff/README.md) | Diff a Helm chart for a deployment in a Kubernetes cluster |
| [template](template/README.md) | Template a Helm chart for a deployment in a Kubernetes cluster |
| [upgrade](upgrade/README.md) | Login to an OCI registry, update chart dependencies, and run helm upgrade |
+9 -6
View File
@@ -11,13 +11,16 @@ Diff a Helm chart for a deployment in a Kubernetes cluster
| name | description | required | default |
| --- | --- | --- | --- |
| `DEPLOYMENT_NAME` | <p>The Kubernetes Deployment to update</p> | `true` | `""` |
| `DEPLOYMENT_NAMESPACE` | <p>The Kubernetes namespace of the Deployment</p> | `true` | `""` |
| `IMAGE_PATH` | <p>The registry path to the image</p> | `true` | `""` |
| `IMAGE_TAG` | <p>The image tag to deploy</p> | `true` | `""` |
| `CONTAINER_NAME` | <p>The container component to update</p> | `true` | `""` |
| `VALUES_FILE` | <p>The values file to use</p> | `false` | `./helm/values.yaml` |
| `DEPLOYMENT_NAME` | <p>The Helm release name</p> | `true` | `""` |
| `DEPLOYMENT_NAMESPACE` | <p>The Kubernetes namespace (defaults to DEPLOYMENT_NAME)</p> | `false` | `""` |
| `REGISTRY` | <p>OCI registry hostname for helm dependency login</p> | `true` | `""` |
| `REGISTRY_USERNAME` | <p>Username for OCI registry login</p> | `true` | `""` |
| `REGISTRY_TOKEN` | <p>Token for OCI registry login</p> | `true` | `""` |
| `CHART_PATH` | <p>Path to the Helm chart</p> | `false` | `./helm` |
| `VALUES_FILE` | <p>The values file to use</p> | `false` | `./helm/values.yaml` |
| `IMAGE_PATH` | <p>The registry path to the image (optional)</p> | `false` | `""` |
| `IMAGE_TAG` | <p>The image tag to deploy (optional)</p> | `false` | `""` |
| `TAG_KEY` | <p>Helm --set key for the image tag (e.g. deploy.api.tag)</p> | `false` | `""` |
<!-- action-docs-inputs source="action.yml" -->
<!-- action-docs-runs source="action.yml" -->
+52 -15
View File
@@ -2,37 +2,74 @@ name: Helm Diff Deployment
description: Diff a Helm chart for a deployment in a Kubernetes cluster
inputs:
DEPLOYMENT_NAME:
description: "The Kubernetes Deployment to update"
description: "The Helm release name"
required: true
DEPLOYMENT_NAMESPACE:
description: "The Kubernetes namespace of the Deployment"
description: "The Kubernetes namespace (defaults to DEPLOYMENT_NAME)"
default: ""
REGISTRY:
description: "OCI registry hostname for helm dependency login"
required: true
IMAGE_PATH:
description: "The registry path to the image"
REGISTRY_USERNAME:
description: "Username for OCI registry login"
required: true
IMAGE_TAG:
description: "The image tag to deploy"
REGISTRY_TOKEN:
description: "Token for OCI registry login"
required: true
CONTAINER_NAME:
description: "The container component to update"
required: true
VALUES_FILE:
description: "The values file to use"
default: "./helm/values.yaml"
CHART_PATH:
description: "Path to the Helm chart"
default: "./helm"
VALUES_FILE:
description: "The values file to use"
default: "./helm/values.yaml"
IMAGE_PATH:
description: "The registry path to the image (optional)"
default: ""
IMAGE_TAG:
description: "The image tag to deploy (optional)"
default: ""
TAG_KEY:
description: "Helm --set key for the image tag (e.g. deploy.api.tag)"
default: ""
runs:
using: composite
steps:
- name: Helm OCI Login
shell: sh
env:
REGISTRY: ${{ inputs.REGISTRY }}
REGISTRY_USERNAME: ${{ inputs.REGISTRY_USERNAME }}
REGISTRY_TOKEN: ${{ inputs.REGISTRY_TOKEN }}
run: |
echo "$REGISTRY_TOKEN" | helm registry login "$REGISTRY" \
--username "$REGISTRY_USERNAME" \
--password-stdin
- name: Install Helm Diff
shell: sh
run: |
helm plugin list | grep -q diff || helm plugin install https://github.com/databus23/helm-diff
- name: Helm Diff
shell: sh
env:
DEPLOYMENT_NAME: ${{ inputs.DEPLOYMENT_NAME }}
DEPLOYMENT_NAMESPACE: ${{ inputs.DEPLOYMENT_NAMESPACE }}
CHART_PATH: ${{ inputs.CHART_PATH }}
VALUES_FILE: ${{ inputs.VALUES_FILE }}
IMAGE_PATH: ${{ inputs.IMAGE_PATH }}
IMAGE_TAG: ${{ inputs.IMAGE_TAG }}
TAG_KEY: ${{ inputs.TAG_KEY }}
run: |
CMD="helm diff upgrade ${{ inputs.DEPLOYMENT_NAME }} ${{ inputs.CHART_PATH }} -n ${{ inputs.DEPLOYMENT_NAMESPACE }} --values ${{ inputs.VALUES_FILE }} --set deploy.${{ inputs.CONTAINER_NAME }}.tag=${{ inputs.IMAGE_TAG }} --set image.repository=${{ inputs.IMAGE_PATH }} --context 5"
echo "Running: $CMD"
eval "$CMD"
NAMESPACE="$DEPLOYMENT_NAMESPACE"
if [ -z "$NAMESPACE" ]; then NAMESPACE="$DEPLOYMENT_NAME"; fi
SET_FLAGS=""
if [ -n "$TAG_KEY" ] && [ -n "$IMAGE_TAG" ]; then
SET_FLAGS="$SET_FLAGS --set $TAG_KEY=$IMAGE_TAG"
fi
if [ -n "$IMAGE_PATH" ]; then
SET_FLAGS="$SET_FLAGS --set image.repository=$IMAGE_PATH"
fi
helm dependency update "$CHART_PATH"
helm diff upgrade "$DEPLOYMENT_NAME" "$CHART_PATH" -n "$NAMESPACE" --values "$VALUES_FILE" $SET_FLAGS --context 5
-27
View File
@@ -1,27 +0,0 @@
# Helm Upgrade Deployment Image
<!-- action-docs-description source="action.yml" -->
## Description
Set the image for a deployment in a Kubernetes
<!-- action-docs-description source="action.yml" -->
<!-- action-docs-inputs source="action.yml" -->
## Inputs
| name | description | required | default |
| --- | --- | --- | --- |
| `DEPLOYMENT_NAME` | <p>The Kubernetes Deployment to update</p> | `true` | `""` |
| `DEPLOYMENT_NAMESPACE` | <p>The Kubernetes namespace of the Deployment</p> | `true` | `""` |
| `IMAGE_PATH` | <p>The registry path to the image</p> | `true` | `""` |
| `IMAGE_TAG` | <p>The image tag to deploy</p> | `true` | `""` |
| `CONTAINER_NAME` | <p>The container component to update</p> | `true` | `""` |
| `VALUES_FILE` | <p>The values file to use</p> | `false` | `./helm/values.yaml` |
| `CHART_PATH` | <p>Path to the Helm chart</p> | `false` | `./helm` |
<!-- action-docs-inputs source="action.yml" -->
<!-- action-docs-runs source="action.yml" -->
## Runs
This action is a `composite` action.
<!-- action-docs-runs source="action.yml" -->
-34
View File
@@ -1,34 +0,0 @@
name: Helm Upgrade Deployment Image
description: Set the image for a deployment in a Kubernetes
inputs:
DEPLOYMENT_NAME:
description: "The Kubernetes Deployment to update"
required: true
DEPLOYMENT_NAMESPACE:
description: "The Kubernetes namespace of the Deployment"
required: true
IMAGE_PATH:
description: "The registry path to the image"
required: true
IMAGE_TAG:
description: "The image tag to deploy"
required: true
CONTAINER_NAME:
description: "The container component to update"
required: true
VALUES_FILE:
description: "The values file to use"
default: "./helm/values.yaml"
CHART_PATH:
description: "Path to the Helm chart"
default: "./helm"
runs:
using: composite
steps:
- name: Helm Set Image
shell: sh
run: |
CMD="helm upgrade ${{ inputs.DEPLOYMENT_NAME }} ${{ inputs.CHART_PATH }} -n ${{ inputs.DEPLOYMENT_NAMESPACE }} --values ${{ inputs.VALUES_FILE }} --set deploy.${{ inputs.CONTAINER_NAME }}.tag=${{ inputs.IMAGE_TAG }} --set image.repository=${{ inputs.IMAGE_PATH }}"
echo "Running: $CMD"
eval "$CMD"
+9 -6
View File
@@ -11,13 +11,16 @@ Template a Helm chart for a deployment in a Kubernetes cluster
| name | description | required | default |
| --- | --- | --- | --- |
| `DEPLOYMENT_NAME` | <p>The Kubernetes Deployment to update</p> | `true` | `""` |
| `DEPLOYMENT_NAMESPACE` | <p>The Kubernetes namespace of the Deployment</p> | `true` | `""` |
| `IMAGE_PATH` | <p>The registry path to the image</p> | `true` | `""` |
| `IMAGE_TAG` | <p>The image tag to deploy</p> | `true` | `""` |
| `CONTAINER_NAME` | <p>The container component to update</p> | `true` | `""` |
| `VALUES_FILE` | <p>The values file to use</p> | `false` | `./helm/values.yaml` |
| `DEPLOYMENT_NAME` | <p>The Helm release name</p> | `true` | `""` |
| `DEPLOYMENT_NAMESPACE` | <p>The Kubernetes namespace (defaults to DEPLOYMENT_NAME)</p> | `false` | `""` |
| `REGISTRY` | <p>OCI registry hostname for helm dependency login</p> | `true` | `""` |
| `REGISTRY_USERNAME` | <p>Username for OCI registry login</p> | `true` | `""` |
| `REGISTRY_TOKEN` | <p>Token for OCI registry login</p> | `true` | `""` |
| `CHART_PATH` | <p>Path to the Helm chart</p> | `false` | `./helm` |
| `VALUES_FILE` | <p>The values file to use</p> | `false` | `./helm/values.yaml` |
| `IMAGE_PATH` | <p>The registry path to the image (optional)</p> | `false` | `""` |
| `IMAGE_TAG` | <p>The image tag to deploy (optional)</p> | `false` | `""` |
| `TAG_KEY` | <p>Helm --set key for the image tag (e.g. deploy.api.tag)</p> | `false` | `""` |
<!-- action-docs-inputs source="action.yml" -->
<!-- action-docs-runs source="action.yml" -->
+51 -15
View File
@@ -2,33 +2,69 @@ name: Helm Template Deployment
description: Template a Helm chart for a deployment in a Kubernetes cluster
inputs:
DEPLOYMENT_NAME:
description: "The Kubernetes Deployment to update"
description: "The Helm release name"
required: true
DEPLOYMENT_NAMESPACE:
description: "The Kubernetes namespace of the Deployment"
description: "The Kubernetes namespace (defaults to DEPLOYMENT_NAME)"
default: ""
REGISTRY:
description: "OCI registry hostname for helm dependency login"
required: true
IMAGE_PATH:
description: "The registry path to the image"
REGISTRY_USERNAME:
description: "Username for OCI registry login"
required: true
IMAGE_TAG:
description: "The image tag to deploy"
REGISTRY_TOKEN:
description: "Token for OCI registry login"
required: true
CONTAINER_NAME:
description: "The container component to update"
required: true
VALUES_FILE:
description: "The values file to use"
default: "./helm/values.yaml"
CHART_PATH:
description: "Path to the Helm chart"
default: "./helm"
VALUES_FILE:
description: "The values file to use"
default: "./helm/values.yaml"
IMAGE_PATH:
description: "The registry path to the image (optional)"
default: ""
IMAGE_TAG:
description: "The image tag to deploy (optional)"
default: ""
TAG_KEY:
description: "Helm --set key for the image tag (e.g. deploy.api.tag)"
default: ""
runs:
using: composite
steps:
- name: Helm OCI Login
shell: sh
env:
REGISTRY: ${{ inputs.REGISTRY }}
REGISTRY_USERNAME: ${{ inputs.REGISTRY_USERNAME }}
REGISTRY_TOKEN: ${{ inputs.REGISTRY_TOKEN }}
run: |
echo "$REGISTRY_TOKEN" | helm registry login "$REGISTRY" \
--username "$REGISTRY_USERNAME" \
--password-stdin
- name: Helm Template
shell: sh
env:
DEPLOYMENT_NAME: ${{ inputs.DEPLOYMENT_NAME }}
DEPLOYMENT_NAMESPACE: ${{ inputs.DEPLOYMENT_NAMESPACE }}
CHART_PATH: ${{ inputs.CHART_PATH }}
VALUES_FILE: ${{ inputs.VALUES_FILE }}
IMAGE_PATH: ${{ inputs.IMAGE_PATH }}
IMAGE_TAG: ${{ inputs.IMAGE_TAG }}
TAG_KEY: ${{ inputs.TAG_KEY }}
run: |
CMD="helm template ${{ inputs.DEPLOYMENT_NAME }} ${{ inputs.CHART_PATH }} -n ${{ inputs.DEPLOYMENT_NAMESPACE }} --values ${{ inputs.VALUES_FILE }} --set deploy.${{ inputs.CONTAINER_NAME }}.tag=${{ inputs.IMAGE_TAG }} --set image.repository=${{ inputs.IMAGE_PATH }}"
echo "Running: $CMD"
eval "$CMD"
NAMESPACE="$DEPLOYMENT_NAMESPACE"
if [ -z "$NAMESPACE" ]; then NAMESPACE="$DEPLOYMENT_NAME"; fi
SET_FLAGS=""
if [ -n "$TAG_KEY" ] && [ -n "$IMAGE_TAG" ]; then
SET_FLAGS="$SET_FLAGS --set $TAG_KEY=$IMAGE_TAG"
fi
if [ -n "$IMAGE_PATH" ]; then
SET_FLAGS="$SET_FLAGS --set image.repository=$IMAGE_PATH"
fi
helm dependency update "$CHART_PATH"
helm template "$DEPLOYMENT_NAME" "$CHART_PATH" -n "$NAMESPACE" --values "$VALUES_FILE" $SET_FLAGS
+6 -2
View File
@@ -3,7 +3,7 @@
<!-- action-docs-description source="action.yml" -->
## Description
Login to an OCI registry, update chart dependencies, and run helm upgrade for the chart in the current directory
Login to an OCI registry, update chart dependencies, and run helm upgrade
<!-- action-docs-description source="action.yml" -->
<!-- action-docs-inputs source="action.yml" -->
@@ -11,12 +11,16 @@ Login to an OCI registry, update chart dependencies, and run helm upgrade for th
| name | description | required | default |
| --- | --- | --- | --- |
| `DEPLOYMENT_NAME` | <p>The Helm release name and target namespace</p> | `true` | `""` |
| `DEPLOYMENT_NAME` | <p>The Helm release name</p> | `true` | `""` |
| `DEPLOYMENT_NAMESPACE` | <p>The Kubernetes namespace (defaults to DEPLOYMENT_NAME)</p> | `false` | `""` |
| `REGISTRY` | <p>OCI registry hostname for helm dependency login</p> | `true` | `""` |
| `REGISTRY_USERNAME` | <p>Username for OCI registry login</p> | `true` | `""` |
| `REGISTRY_TOKEN` | <p>Token for OCI registry login</p> | `true` | `""` |
| `CHART_PATH` | <p>Path to the Helm chart</p> | `false` | `./helm` |
| `VALUES_FILE` | <p>The values file to use</p> | `false` | `./helm/values.yaml` |
| `IMAGE_PATH` | <p>The registry path to the image (optional)</p> | `false` | `""` |
| `IMAGE_TAG` | <p>The image tag to deploy (optional)</p> | `false` | `""` |
| `TAG_KEY` | <p>Helm --set key for the image tag (e.g. deploy.api.tag)</p> | `false` | `""` |
<!-- action-docs-inputs source="action.yml" -->
<!-- action-docs-runs source="action.yml" -->
+39 -7
View File
@@ -1,9 +1,12 @@
name: Helm Upgrade
description: Login to an OCI registry, update chart dependencies, and run helm upgrade for the chart in the current directory
description: Login to an OCI registry, update chart dependencies, and run helm upgrade
inputs:
DEPLOYMENT_NAME:
description: "The Helm release name and target namespace"
description: "The Helm release name"
required: true
DEPLOYMENT_NAMESPACE:
description: "The Kubernetes namespace (defaults to DEPLOYMENT_NAME)"
default: ""
REGISTRY:
description: "OCI registry hostname for helm dependency login"
required: true
@@ -19,23 +22,52 @@ inputs:
VALUES_FILE:
description: "The values file to use"
default: "./helm/values.yaml"
IMAGE_PATH:
description: "The registry path to the image (optional)"
default: ""
IMAGE_TAG:
description: "The image tag to deploy (optional)"
default: ""
TAG_KEY:
description: "Helm --set key for the image tag (e.g. deploy.api.tag)"
default: ""
runs:
using: composite
steps:
- name: Helm OCI Login
shell: sh
env:
REGISTRY: ${{ inputs.REGISTRY }}
REGISTRY_USERNAME: ${{ inputs.REGISTRY_USERNAME }}
REGISTRY_TOKEN: ${{ inputs.REGISTRY_TOKEN }}
run: |
echo "${{ inputs.REGISTRY_TOKEN }}" | helm registry login ${{ inputs.REGISTRY }} \
--username ${{ inputs.REGISTRY_USERNAME }} \
echo "$REGISTRY_TOKEN" | helm registry login "$REGISTRY" \
--username "$REGISTRY_USERNAME" \
--password-stdin
- name: Helm Upgrade
shell: sh
env:
DEPLOYMENT_NAME: ${{ inputs.DEPLOYMENT_NAME }}
DEPLOYMENT_NAMESPACE: ${{ inputs.DEPLOYMENT_NAMESPACE }}
CHART_PATH: ${{ inputs.CHART_PATH }}
VALUES_FILE: ${{ inputs.VALUES_FILE }}
IMAGE_PATH: ${{ inputs.IMAGE_PATH }}
IMAGE_TAG: ${{ inputs.IMAGE_TAG }}
TAG_KEY: ${{ inputs.TAG_KEY }}
run: |
helm dependency update ${{ inputs.CHART_PATH }}
echo "Running: helm upgrade ${{ inputs.DEPLOYMENT_NAME }} ${{ inputs.CHART_PATH }} -n ${{ inputs.DEPLOYMENT_NAME }} --values ${{ inputs.VALUES_FILE }}"
helm upgrade ${{ inputs.DEPLOYMENT_NAME }} ${{ inputs.CHART_PATH }} -n ${{ inputs.DEPLOYMENT_NAME }} --values ${{ inputs.VALUES_FILE }}
NAMESPACE="$DEPLOYMENT_NAMESPACE"
if [ -z "$NAMESPACE" ]; then NAMESPACE="$DEPLOYMENT_NAME"; fi
SET_FLAGS=""
if [ -n "$TAG_KEY" ] && [ -n "$IMAGE_TAG" ]; then
SET_FLAGS="$SET_FLAGS --set $TAG_KEY=$IMAGE_TAG"
fi
if [ -n "$IMAGE_PATH" ]; then
SET_FLAGS="$SET_FLAGS --set image.repository=$IMAGE_PATH"
fi
helm dependency update "$CHART_PATH"
helm upgrade "$DEPLOYMENT_NAME" "$CHART_PATH" -n "$NAMESPACE" --values "$VALUES_FILE" $SET_FLAGS
- name: Remove kubeconfig
if: always()
+7
View File
@@ -0,0 +1,7 @@
# infisical
Composite actions for Infisical secret management.
| action | description |
| --- | --- |
| [fetch-secret](fetch-secret/README.md) | Fetches a single secret value from Infisical using a machine identity token |
+5 -2
View File
@@ -24,7 +24,7 @@ inputs:
default: "/"
outputs:
value:
description: "The fetched secret value"
description: "The fetched secret value (base64-encoded)"
value: ${{ steps.fetch.outputs.value }}
runs:
@@ -61,8 +61,11 @@ runs:
exit 1
fi
B64=$(printf '%s' "$VALUE" | base64 | tr -d '\n')
echo "::add-mask::$B64"
DELIMITER="INFISICAL_EOF_$$"
echo "value<<${DELIMITER}" >> "$GITHUB_OUTPUT"
echo "$VALUE" >> "$GITHUB_OUTPUT"
printf '%s\n' "$B64" >> "$GITHUB_OUTPUT"
echo "${DELIMITER}" >> "$GITHUB_OUTPUT"
echo "Successfully fetched secret '${{ inputs.SECRET_NAME }}'"
+7
View File
@@ -0,0 +1,7 @@
# infra
Composite actions for infrastructure management.
| action | description |
| --- | --- |
| [update_version](update_version/README.md) | Updates the service tag in the stat-tackler-infra releases/versions.yaml |
+7
View File
@@ -0,0 +1,7 @@
# kubectl
Composite actions for kubectl configuration.
| action | description |
| --- | --- |
| [configure](configure/README.md) | Configure kubectl for use with Kubernetes |
+12 -11
View File
@@ -2,7 +2,7 @@ name: Configure Kubectl
description: Configure kubectl for use with Kubernetes
inputs:
K8S_CONFIG:
description: "The RAW Kubernetes config"
description: "The base64-encoded Kubernetes config"
required: true
K8S_NAMESPACE:
description: "The K8S namespace"
@@ -14,20 +14,21 @@ inputs:
runs:
using: composite
steps:
- name: Mask kubeconfig
shell: sh
env:
K8S_CONFIG: ${{ inputs.K8S_CONFIG }}
run: echo "::add-mask::$K8S_CONFIG"
- name: Configure kubectl
shell: sh
env:
K8S_CONFIG: ${{ inputs.K8S_CONFIG }}
run: |
echo "Remove existing kubeconfig"
echo "Configuring kubectl for context=${{ inputs.K8S_CONTEXT }} namespace=${{ inputs.K8S_NAMESPACE }}"
rm -f ~/.kube/config
echo "Re-creating .kube directory"
mkdir -p ~/.kube
echo "Set kubeconfig"
echo "${{ inputs.K8S_CONFIG }}" > ~/.kube/config
echo "Set kubeconfig context"
printf '%s' "$K8S_CONFIG" | base64 -d > ~/.kube/config
kubectl config set-context ${{ inputs.K8S_CONTEXT }} --cluster=${{ inputs.K8S_CONTEXT }} --namespace=${{ inputs.K8S_NAMESPACE }}
echo "Use kubeconfig context ${{ inputs.K8S_CONTEXT }}"
kubectl config use-context ${{ inputs.K8S_CONTEXT }}
echo "kubectl configured successfully"
+1
View File
@@ -18,6 +18,7 @@ Install dependencies, build, and upload a build artifact
| `ARTIFACT_PATH` | <p>Path to upload as the artifact</p> | `false` | `dist` |
| `COPY_PRISMA_ENGINE` | <p>Copy the Prisma query engine binaries into the build directory</p> | `false` | `false` |
| `WORKING_DIRECTORY` | <p>Working directory for install, build, and artifact steps</p> | `false` | `.` |
| `UPLOAD_ARTIFACT` | <p>Whether to upload the build artifact</p> | `false` | `true` |
<!-- action-docs-inputs source="action.yml" -->
<!-- action-docs-runs source="action.yml" -->
+4
View File
@@ -22,6 +22,9 @@ inputs:
WORKING_DIRECTORY:
description: "Working directory for install, build, and artifact steps"
default: "."
UPLOAD_ARTIFACT:
description: "Whether to upload the build artifact"
default: "true"
runs:
using: composite
@@ -56,6 +59,7 @@ runs:
cp node_modules/.prisma/client/libquery_engine-* build/prisma/
- name: Upload Build Artifact
if: inputs.UPLOAD_ARTIFACT != 'false'
uses: actions/upload-artifact@v3
with:
name: ${{ inputs.ARTIFACT_NAME }}
+7
View File
@@ -0,0 +1,7 @@
# test
Composite actions for running tests.
| action | description |
| --- | --- |
| [npm](npm/README.md) | Install dependencies and run npm tests |
+10
View File
@@ -8,6 +8,7 @@ Composite action: install dependencies and run an npm test script.
|---|---|---|
| `INSTALL_CMD` | Install command | `npm ci` |
| `TEST_SCRIPT` | npm script to run (must exist in `package.json`) | `test` |
| `TEST_ARGS` | Additional arguments passed after `--` to the test script | `` |
| `WORKING_DIRECTORY` | Directory to run commands in | `.` |
## Usage
@@ -18,6 +19,15 @@ Composite action: install dependencies and run an npm test script.
TEST_SCRIPT: test:unit
```
With extra args:
```yaml
- uses: stat-tackler/stat-tackler-infra/test/npm@main
with:
TEST_SCRIPT: test:coverage
TEST_ARGS: --silent --reporter=dot --test-timeout=30000
```
### Common test scripts by project
| Project | Script | Runner |
+4 -1
View File
@@ -8,6 +8,9 @@ inputs:
TEST_SCRIPT:
description: "npm script to run (must exist in package.json)"
default: "test"
TEST_ARGS:
description: "Additional arguments to pass after -- to the test script"
default: ""
WORKING_DIRECTORY:
description: "Directory to run commands in"
default: "."
@@ -37,4 +40,4 @@ runs:
- name: Test
shell: sh
working-directory: ${{ inputs.WORKING_DIRECTORY }}
run: npm run ${{ inputs.TEST_SCRIPT }}
run: npm run ${{ inputs.TEST_SCRIPT }}${{ inputs.TEST_ARGS != '' && format(' -- {0}', inputs.TEST_ARGS) || '' }}
+8
View File
@@ -0,0 +1,8 @@
# trivy
Composite actions for Trivy vulnerability scanning.
| action | description |
| --- | --- |
| [image_scan](image_scan/README.md) | Scan a container image with Trivy |
| [namespace_scan](namespace_scan/README.md) | Scan a Kubernetes namespace for vulnerabilities |