Skip to content
CI/CD Inventory

galaxyproject/galaxy-helm (opens in new tab)

2 workflows

Triggers

pull_request_target workflow_dispatch

Jobs

Jobs for Package and publish the chart
Job Runs on Steps Actions used
Package and push from PR ubuntu-latest 2
actions/checkout@v5 cloudve/helm-ci@master
Package and push manual invocation ubuntu-latest 2
actions/checkout@v5 cloudve/helm-ci@master
Create a tag and GitHub release for this version. ubuntu-latest 2
actions/checkout@v5
Raw YAML
name: Package and publish the chart
on:
  pull_request_target:
    types: [closed]
  workflow_dispatch:
    inputs:
      manual-package-invocation:
        description: 'Package (y/n)?'
        required: true
        default: 'y'
      version-bump:
        description: 'Version bump: major, minor, patch'
        required: true
      branch-name:
        description: 'Branch name to package'
        required: true
jobs:
  package-from-pr:
    if: github.event.pull_request.merged == true
    name: Package and push from PR
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
        with:
           persist-credentials: false
      - uses: cloudve/helm-ci@master
        with:
          chart-name: galaxy
          charts-repo: cloudve/helm-charts
          github-token: ${{ secrets.CHARTS_TOKEN }}
          charts-token: ${{ secrets.CHARTS_TOKEN }}
          github-labels: ${{ join(github.event.pull_request.labels.*.name, ', ') }}
          git-branch: ${{ github.event.pull_request.base.ref }}
  package-from-manual:
    if: github.event.inputs.manual-package-invocation == 'y'
    name: Package and push manual invocation
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
        with:
           persist-credentials: false
      - uses: cloudve/helm-ci@master
        with:
          chart-name: galaxy
          charts-repo: cloudve/helm-charts
          github-token: ${{ secrets.CHARTS_TOKEN }}
          charts-token: ${{ secrets.CHARTS_TOKEN }}
          github-labels: ${{ github.event.inputs.version-bump }}
          git-branch: ${{ github.event.inputs.branch-name }}
  tag-and-release:
    needs: [ package-from-pr, package-from-manual ]
    name: Create a tag and GitHub release for this version.
    runs-on: ubuntu-latest
    env:
      GH_TOKEN: ${{ github.token }}
    if: |
      always()
      && contains(needs.*.result, 'success')
      && !contains(needs.*.result, 'failure')
    steps:
      - uses: actions/checkout@v5
        with:
          ref: ${{ github.ref }}
      - name: Tag and release
        run: |
          git config user.name "GitHub Actions Bot"
          git config user.email "<>"
          version=v$(cat galaxy/Chart.yaml | grep ^version: | awk '{print $2}')
          git tag -a $version -m "Automatic release of $version"
          git push origin $version
          gh release create $version --generate-notes --latest

Last fetched:

Linting and deployment test on K3S

.github/workflows/test.yaml (opens in new tab)
Linting and deployment test on K3S status

Triggers

push pull_request workflow_dispatch

Jobs

Jobs for Linting and deployment test on K3S
Job Runs on Steps Actions used
linting ubuntu-latest 4
actions/checkout@v5
test ubuntu-latest 13
actions/checkout@v5 jupyterhub/action-k3s-helm@v4
Raw YAML
name: Linting and deployment test on K3S
on:
  push:
    branches:
      - master
      - anvil
  pull_request: {}
  workflow_dispatch: {}
jobs:
  linting:
    runs-on: ubuntu-latest
    steps:
      - name: Install Kubectl
        run: curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" && chmod +x ./kubectl && sudo mv ./kubectl /usr/local/bin/kubectl && kubectl version || true
      - name: Install Helm
        run: curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
      - uses: actions/checkout@v5
        with:
          persist-credentials: false
      - name: Helm linting for galaxy
        run: helm lint galaxy/

  test:
    runs-on: ubuntu-latest
    steps:
      - name: Install Helm
        run: curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
      - uses: actions/checkout@v5
        with:
          persist-credentials: false
      - name: Start k8s locally
        uses: jupyterhub/action-k3s-helm@v4
        with:
          k3s-version: v1.34.1+k3s1  # releases:  https://github.com/k3s-io/k3s/tags
          metrics-enabled: false
          traefik-enabled: false
      - name: Verify function of k8s, kubectl, and helm
        run: |
          echo "kubeconfig: $KUBECONFIG"
          kubectl version
          kubectl get pods --all-namespaces

          helm version
          helm list
      - name: Helm repo add galaxy
        run: helm repo add galaxy https://github.com/CloudVE/helm-charts/raw/master
      - name: Helm install galaxy-helm-deps
        run: time bash -c 'helm install --create-namespace --wait -n "galaxy-deps" "galaxy-deps" galaxy/galaxy-deps --set cvmfs.cvmfscsi.cache.alien.enabled=false --wait --timeout=1200s'
      - name: Helm install Galaxy
        run: time bash -c 'helm install --create-namespace -n galaxy galaxy ./galaxy --set persistence.accessMode="ReadWriteOnce" --set resources.requests.memory=0Mi,resources.requests.cpu=0m --wait --timeout=1200s'
      - name: Get events
        run: kubectl get events -n galaxy; kubectl get events -n csi-drivers;
        if: always()
      - name: Get pods, pvc, and pv
        run: kubectl get pods -n galaxy; kubectl get pvc -n galaxy; kubectl get pv -n galaxy
        if: always()
      - name: Print web handler log
        run: bash -c "kubectl logs -n galaxy $(kubectl -n galaxy get pods | grep -o '[^ ]*galaxy-web[^ ]*')"
        if: always()
      - name: Print job handler log
        run: bash -c "kubectl logs -n galaxy $(kubectl -n galaxy get pods | grep -o '[^ ]*galaxy-job[^ ]*')"
        if: always()
      - name: Print workflow handler log
        run: bash -c "kubectl logs -n galaxy $(kubectl -n galaxy get pods | grep -o '[^ ]*galaxy-workflow[^ ]*')"
        if: always()
      - name: Check appVersion
        if: always()
        run: |
          kubectl get svc -n galaxy
          kubectl describe svc -n galaxy galaxy-nginx
          appVersion=$(cat galaxy/Chart.yaml | grep ^appVersion: | awk '{print $2}' | tr -d '"')
          address=$(kubectl get svc -n galaxy galaxy-nginx -o jsonpath="http://{.spec.clusterIP}:{.spec.ports[0].port}/galaxy/api/version")
          echo "Address is $address"
          apiVersion=$(curl $address | jq -r '"\(.version_major).\(.version_minor)"')
          echo "appVersion: $appVersion"
          echo "apiVersion: $apiVersion"
          if [ "$appVersion" != "$apiVersion" ]; then
            exit 1
          fi

Last fetched: