-
Notifications
You must be signed in to change notification settings - Fork 0
47 lines (40 loc) · 1.91 KB
/
create_endpoint.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
name: Create Hub Ingest Endpoint
on:
workflow_dispatch:
inputs:
username:
description: 'Username for the endpoint'
required: true
type: string
size:
description: 'Storage size (e.g., 50Gi)'
required: true
type: string
env:
BIOC_HUBSINGEST_PATH: "${{ github.workspace }}"
jobs:
create-endpoint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: save kubeconfig
shell: bash
run: mkdir -p ~/.kube && echo "${{ secrets.KUBECONFIG }}" > ~/.kube/config
- 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
- name: Set up environment
run: |
USERNAME_UPPER=$(echo "${{ inputs.username }}" | tr '[:lower:]' '[:upper:]')
echo "SECRET_NAME=S3KEY_${USERNAME_UPPER}" >> $GITHUB_ENV
- name: Create endpoint then test
run: |
bash install_hubsingest.sh
export PATH="$PATH:$BIOC_HUBSINGEST_PATH"
hubsingest create_endpoint "${{ inputs.username }}" "${{ inputs.size }}" ${{ secrets[env.SECRET_NAME] }}
kubectl wait -n "${{ inputs.username }}-ns" --for=condition=ready pod -l app=versitygw --timeout=300s
kubectl wait -n "${{ inputs.username }}-ns" --for=condition=ready certificate ${{ inputs.username }}-hubsingest-bioconductor-org-key --timeout=600s || bash scripts/reset_endpoint.sh "${{ inputs.username }}" && kubectl wait -n "${{ inputs.username }}-ns" --for=condition=ready certificate ${{ inputs.username }}-hubsingest-bioconductor-org-key --timeout=600s
hubsingest test_endpoint "${{ inputs.username }}"