Commit 8740b7ca authored by William Tucker's avatar William Tucker
Browse files

Merge branch 'master' of github.com:ESGF/esgf-docker into tomcat9

parents ad5bff91 956bcb87
Loading
Loading
Loading
Loading
Loading
+69 −0
Original line number Diff line number Diff line
name: K8S Build & Test

on:
  pull_request:

permissions: {}

jobs:
  helm:
    name: Publish Helm chart
    runs-on: ubuntu-latest
    permissions:
      packages: write
    outputs:
      generated-semver: ${{ steps.semantic-version.outputs.generated-semver }}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
      - name: Install jq
        run: |
          sudo apt-get install --yes jq
      - name: Install yq
        run: |
          pip install yq
      - name: Generate SemVer
        id: semantic-version
        run: |
          CHART_VERSION=$(yq -r '.version' helm/Chart.yaml)
          LOCAL_SEGMENT=+pr-${{ github.event.pull_request.number }}
          GENERATED_VERSION=${CHART_VERSION}${LOCAL_SEGMENT}
          yq -Y -i ".version = \"$GENERATED_VERSION\"" helm/Chart.yaml
          echo "generated-semver=$GENERATED_VERSION" >> $GITHUB_OUTPUT
      - name: Chart | Push
        uses: appany/helm-oci-chart-releaser@v0.5.0
        with:
          name: esgf
          repository: ESGF/charts
          tag: ${{ steps.semantic-version.outputs.generated-semver }}
          path: helm
          registry: ghcr.io
          registry_username: ${{ github.actor }}
          registry_password: ${{ secrets.GITHUB_TOKEN }}
          update_dependencies: "true"

  test:
    name: Test deployment
    runs-on: ubuntu-latest
    needs: [container, helm]
    steps:
      - uses: actions/checkout@v4
      - name: Start minikube
        uses: medyagh/setup-minikube@latest
      - name: Set up Helm
        uses: azure/setup-helm@v4.3.0
      - name: Install Helm Chart
        run: |
          helm install test oci://ghcr.io/ESGF/charts/esgf \
            --version=${{ needs.helm.outputs.generated-semver }} \
            --set image.tag=pr-${{ github.event.pull_request.number }} \
            --set hostname=esg-esgf.test \
            --set service.type=NodePort \
            --debug \
            --wait
      - name: Test File Server
        run: |
          kubectl get pods --all-namespaces
          SVC_URL=$(minikube service test-esgf-file-server --url)
          echo "Service URL: $SVC_URL"
          curl -s "${SVC_URL}/thredds/fileServer/"
+29 −0
Original line number Diff line number Diff line
name: Release

on:
  push:
    tags:
    - "[0-9]+.[0-9]+.[0-9]*"

permissions: {}

jobs:
  helm:
    name: Publish Helm chart
    runs-on: ubuntu-latest
    permissions:
      packages: write
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
      - name: Chart | Push
        uses: appany/helm-oci-chart-releaser@v0.5.0
        with:
          name: esgf
          repository: ESGF/charts
          tag: ${{ github.ref_name }}
          path: deploy/kubernetes/chart
          registry: ghcr.io
          registry_username: ${{ github.actor }}
          registry_password: ${{ secrets.GITHUB_TOKEN }}
          update_dependencies: "true"
+0 −7
Original line number Diff line number Diff line
@@ -154,13 +154,6 @@ build:tomcat:
    CONTEXT_DIR: $CI_PROJECT_DIR/images/tomcat
  needs: ["build:jre"]

build:keycloak:
  extends: .docker-build
  stage: build-3
  variables:
    CONTEXT_DIR: $CI_PROJECT_DIR/images/keycloak
  needs: ["build:jdk"]

build:python-build:
  extends: .docker-build
  stage: build-3
+8 −0
Original line number Diff line number Diff line
@@ -14,6 +14,14 @@ server {
        return 404;
    }

    # Health check
    location /health {
        return 200;
    }
    location /thredds/fileServer/health {
        return 200;
    }

    # Create a location block for each dataset
    {% for dataset in data_datasets %}
    location /thredds/fileServer/{{ dataset.path }}/ {
+5 −0
Original line number Diff line number Diff line
@@ -19,6 +19,11 @@ server {
        return 404;
    }

    # Health check
    location /health {
        return 200;
    }

    {% if auth_enabled %}
    location /verify {
        set $query '';
Loading