diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml index 4064be71..a1bb5195 100644 --- a/.github/workflows/packaging.yml +++ b/.github/workflows/packaging.yml @@ -20,7 +20,7 @@ jobs: name: Package and push from PR runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: persist-credentials: false - uses: cloudve/helm-ci@master @@ -36,7 +36,7 @@ jobs: name: Package and push manual invocation runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: persist-credentials: false - uses: cloudve/helm-ci@master @@ -51,10 +51,17 @@ jobs: needs: [ package-from-pr, package-from-manual ] name: Create a tag and GitHub release for this version. runs-on: ubuntu-latest + if: | + always() + && contains(needs.*.result, 'success') + && !contains(needs.*.result, 'failure') steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false - name: Tag and release run: | 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 + gh release create $version --generate-notes --latest diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index bbde0299..324e7ae7 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -34,7 +34,7 @@ jobs: - name: Start k8s locally uses: jupyterhub/action-k3s-helm@v3 with: - k3s-version: v1.25.15+k3s2 # releases: https://github.com/k3s-io/k3s/tags + k3s-version: v1.28.7+k3s1 # releases: https://github.com/k3s-io/k3s/tags metrics-enabled: false traefik-enabled: false - name: Verify function of k8s, kubectl, and helm diff --git a/README.md b/README.md index 4d5aebbc..615e2b7e 100644 --- a/README.md +++ b/README.md @@ -34,18 +34,40 @@ helm upgrade --install ingress-nginx ingress-nginx \ This chart relies on the features of other charts for common functionality: - [postgres-operator](https://github.com/zalando/postgres-operator) for the database; -- [CSI-S3 chart](https://github.com/ctrox/csi-s3/pull/75/) for linking the - reference data to Galaxy and jobs based on S3FS. +- [galaxy-cvmfs-csi](https://github.com/CloudVE/galaxy-cvmfs-csi-helm) for linking the + reference data to Galaxy and jobs based on CVMFS (default). +- [csi-s3](https://github.com/ctrox/csi-s3/pull/75/) for linking + reference data to Galaxy and jobs based on S3FS (optional/alternative to CVMFS). +- [rabbitmq-cluster-operator](https://github.com/rabbitmq/cluster-operator) for deploying + the message queue. In a production setting, especially if the intention is to run multiple Galaxies in a single cluster, we recommend installing the dependency charts separately once per cluster, and installing Galaxy with `--set postgresql.deploy=false ---set s3csi.deploy=false`. +--set s3csi.deploy=false --set cvmfs.deploy=false --set rabbitmq.deploy=false`. --- ## Installing the chart +### Using the chart from the packaged chart repo + +1. The chart is automatically packaged, versioned and uploaded to a helm repository +on each accepted PR. Therefore, the latest version of the chart can be downloaded +from this repository. + +```console +helm repo add cloudve https://raw.githubusercontent.com/CloudVE/helm-charts/master/ +helm repo update +``` + +2. Install the chart with the release name `my-galaxy`. It is not advisable to + install Galaxy in the `default` namespace. + +```console +helm install my-galaxy-release cloudve/galaxy +``` + ### Using the chart from GitHub repo 1. Clone this repository and add required dependency charts: @@ -68,25 +90,6 @@ In several minute, Galaxy will be available at `/galaxy/` URL of your Kubernetes cluster. If you are running the development Kubernetes, Galaxy will be available at `http://localhost/galaxy/` (note the trailing slash). -### Using the chart from the packaged chart repo - -1. Instead of using the source code repo, you can install the packaged version -of the chart and hence not need to clone this GitHub repo. The packaged version -may contain a bit older but possibly more stable code than what is the GitHub -repo at any a given point in time. - -```console -helm repo add cloudve https://raw.githubusercontent.com/CloudVE/helm-charts/master/ -helm repo update -``` - -2. Install the chart with the release name `my-galaxy`. It is not advisable to - install Galaxy in the `default` namespace. - -```console -helm install my-galaxy-release cloudve/galaxy -``` - ## Uninstalling the chart To uninstall/delete the `my-galaxy` deployment, run: diff --git a/galaxy/Chart.yaml b/galaxy/Chart.yaml index ae6c4aa8..aad942ce 100644 --- a/galaxy/Chart.yaml +++ b/galaxy/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 name: galaxy type: application -version: 5.8.0 +version: 5.11.0 appVersion: "23.1" description: Chart for Galaxy, an open, web-based platform for accessible, reproducible, and transparent computational biomedical research. icon: https://galaxyproject.org/images/galaxy-logos/galaxy_project_logo_square.png diff --git a/galaxy/templates/configmap-cvmfs-fix.yaml b/galaxy/templates/configmap-cvmfs-fix.yaml index d5d4c129..f680f119 100644 --- a/galaxy/templates/configmap-cvmfs-fix.yaml +++ b/galaxy/templates/configmap-cvmfs-fix.yaml @@ -1,3 +1,4 @@ +--- apiVersion: v1 kind: ConfigMap metadata: diff --git a/galaxy/templates/configmap-extra-files.yaml b/galaxy/templates/configmap-extra-files.yaml index b0e60f60..53dc516c 100644 --- a/galaxy/templates/configmap-extra-files.yaml +++ b/galaxy/templates/configmap-extra-files.yaml @@ -1,5 +1,6 @@ {{- range $key, $entry := .Values.extraFileMappings -}} {{- if $entry }} +--- apiVersion: v1 metadata: # Extract the filename portion only @@ -20,9 +21,9 @@ data: {{- else }} {{- $entry.content | nindent 4 }} {{- end }} ---- {{- end }} {{- end }} +--- apiVersion: v1 metadata: name: {{ include "galaxy.fullname" $ }}-probedb-py @@ -32,5 +33,3 @@ kind: ConfigMap data: probedb.py: | {{- (.Files.Get "scripts/probedb.py") | nindent 4 }} - ---- diff --git a/galaxy/templates/configmap-galaxy-rules.yaml b/galaxy/templates/configmap-galaxy-rules.yaml index aaa5101c..ed09bb95 100644 --- a/galaxy/templates/configmap-galaxy-rules.yaml +++ b/galaxy/templates/configmap-galaxy-rules.yaml @@ -1,3 +1,4 @@ +--- apiVersion: v1 kind: ConfigMap metadata: diff --git a/galaxy/templates/configmap-grafana-dashboard.yaml b/galaxy/templates/configmap-grafana-dashboard.yaml index 58d573aa..1ced09bb 100644 --- a/galaxy/templates/configmap-grafana-dashboard.yaml +++ b/galaxy/templates/configmap-grafana-dashboard.yaml @@ -1,4 +1,5 @@ {{- if .Values.influxdb.enabled }} +--- apiVersion: v1 kind: ConfigMap metadata: diff --git a/galaxy/templates/configmap-nginx.yaml b/galaxy/templates/configmap-nginx.yaml index d1166b32..a74409cd 100644 --- a/galaxy/templates/configmap-nginx.yaml +++ b/galaxy/templates/configmap-nginx.yaml @@ -1,3 +1,4 @@ +--- apiVersion: v1 kind: ConfigMap metadata: diff --git a/galaxy/templates/configs-galaxy.yaml b/galaxy/templates/configs-galaxy.yaml index f1b0e229..4fa8a7ec 100644 --- a/galaxy/templates/configs-galaxy.yaml +++ b/galaxy/templates/configs-galaxy.yaml @@ -1,3 +1,4 @@ +--- apiVersion: v1 metadata: name: {{ include "galaxy.fullname" . }}-configs diff --git a/galaxy/templates/deployment-celery-beat.yaml b/galaxy/templates/deployment-celery-beat.yaml index e50a9622..0f46248d 100644 --- a/galaxy/templates/deployment-celery-beat.yaml +++ b/galaxy/templates/deployment-celery-beat.yaml @@ -1,3 +1,4 @@ +--- apiVersion: apps/v1 kind: Deployment metadata: diff --git a/galaxy/templates/deployment-celery.yaml b/galaxy/templates/deployment-celery.yaml index c21660f4..100b4ac6 100644 --- a/galaxy/templates/deployment-celery.yaml +++ b/galaxy/templates/deployment-celery.yaml @@ -1,3 +1,4 @@ +--- apiVersion: apps/v1 kind: Deployment metadata: diff --git a/galaxy/templates/deployment-job.yaml b/galaxy/templates/deployment-job.yaml index 28e12dc3..29988bd1 100644 --- a/galaxy/templates/deployment-job.yaml +++ b/galaxy/templates/deployment-job.yaml @@ -1,4 +1,5 @@ {{- range $handler_num, $e := until (int $.Values.jobHandlers.replicaCount) }} +--- apiVersion: apps/v1 kind: Deployment metadata: @@ -210,5 +211,4 @@ spec: tolerations: {{- toYaml . | nindent 8 }} {{- end }} ---- {{- end }} diff --git a/galaxy/templates/deployment-metrics.yaml b/galaxy/templates/deployment-metrics.yaml index 3f29b7b6..03637c43 100644 --- a/galaxy/templates/deployment-metrics.yaml +++ b/galaxy/templates/deployment-metrics.yaml @@ -1,4 +1,5 @@ {{- if .Values.metrics.enabled }} +--- apiVersion: apps/v1 kind: Deployment metadata: diff --git a/galaxy/templates/deployment-nginx.yaml b/galaxy/templates/deployment-nginx.yaml index 34020fcb..36d0bb6d 100644 --- a/galaxy/templates/deployment-nginx.yaml +++ b/galaxy/templates/deployment-nginx.yaml @@ -1,3 +1,4 @@ +--- apiVersion: apps/v1 kind: Deployment metadata: diff --git a/galaxy/templates/deployment-tusd.yaml b/galaxy/templates/deployment-tusd.yaml index 45813ab9..0d7d2fb7 100644 --- a/galaxy/templates/deployment-tusd.yaml +++ b/galaxy/templates/deployment-tusd.yaml @@ -1,4 +1,5 @@ {{ if .Values.tusd.enabled -}} +--- apiVersion: apps/v1 kind: Deployment metadata: diff --git a/galaxy/templates/deployment-web.yaml b/galaxy/templates/deployment-web.yaml index 0a1f8c49..783d1a52 100644 --- a/galaxy/templates/deployment-web.yaml +++ b/galaxy/templates/deployment-web.yaml @@ -1,3 +1,4 @@ +--- apiVersion: apps/v1 kind: Deployment metadata: diff --git a/galaxy/templates/deployment-workflow.yaml b/galaxy/templates/deployment-workflow.yaml index ee094f58..b994fbc9 100644 --- a/galaxy/templates/deployment-workflow.yaml +++ b/galaxy/templates/deployment-workflow.yaml @@ -1,3 +1,4 @@ +--- apiVersion: apps/v1 kind: Deployment metadata: diff --git a/galaxy/templates/hook-cvmfs-fix.yaml b/galaxy/templates/hook-cvmfs-fix.yaml index a91a76bf..7e88b036 100644 --- a/galaxy/templates/hook-cvmfs-fix.yaml +++ b/galaxy/templates/hook-cvmfs-fix.yaml @@ -1,4 +1,5 @@ {{- if and .Values.refdata.enabled (eq .Values.refdata.type "cvmfs") }} +--- # Include the code you want to run when both conditions are met apiVersion: batch/v1 kind: Job diff --git a/galaxy/templates/ingress-activity-canary.yaml b/galaxy/templates/ingress-activity-canary.yaml index 09c467e1..4cee4b9e 100644 --- a/galaxy/templates/ingress-activity-canary.yaml +++ b/galaxy/templates/ingress-activity-canary.yaml @@ -6,6 +6,7 @@ {{- $fullName := include "galaxy.fullname" . -}} {{- $ingressPath := .Values.ingress.path -}} {{- $servicePort := .Values.service.port -}} +--- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: @@ -42,4 +43,4 @@ spec: number: {{ $servicePort }} {{- end }} {{- end }} ---- + diff --git a/galaxy/templates/ingress-tusd.yaml b/galaxy/templates/ingress-tusd.yaml index ebb836a9..36180356 100644 --- a/galaxy/templates/ingress-tusd.yaml +++ b/galaxy/templates/ingress-tusd.yaml @@ -1,5 +1,6 @@ {{- if and .Values.tusd.enabled .Values.tusd.ingress.enabled -}} {{- $fullName := include "galaxy.fullname" . -}} +--- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: @@ -38,4 +39,4 @@ spec: {{- end }} {{- end }} {{- end }} ---- + diff --git a/galaxy/templates/ingress.yaml b/galaxy/templates/ingress.yaml index 9b2458e6..a77b9a2d 100644 --- a/galaxy/templates/ingress.yaml +++ b/galaxy/templates/ingress.yaml @@ -1,6 +1,7 @@ {{- if .Values.ingress.enabled -}} {{- $fullName := include "galaxy.fullname" . -}} {{- $servicePort := .Values.service.port -}} +--- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: @@ -39,4 +40,3 @@ spec: {{- end }} {{- end }} {{- end }} ---- diff --git a/galaxy/templates/jobs-init.yaml b/galaxy/templates/jobs-init.yaml index d72244da..92079e07 100644 --- a/galaxy/templates/jobs-init.yaml +++ b/galaxy/templates/jobs-init.yaml @@ -1,3 +1,4 @@ +--- apiVersion: batch/v1 kind: Job metadata: diff --git a/galaxy/templates/priorityclass-job.yaml b/galaxy/templates/priorityclass-job.yaml index 1d5e2b24..da4f9b59 100644 --- a/galaxy/templates/priorityclass-job.yaml +++ b/galaxy/templates/priorityclass-job.yaml @@ -1,12 +1,13 @@ {{- if and .Values.jobs.priorityClass.enabled (not .Values.jobs.priorityClass.existingClass) }} +--- apiVersion: scheduling.k8s.io/v1 kind: PriorityClass metadata: name: {{ include "galaxy.pod-priority-class" . }} labels: {{- include "galaxy.labels" . | nindent 4 }} -value: -1000 +value: {{ default "-1000" .Values.jobs.priorityClass.value }} preemptionPolicy: Never globalDefault: false -description: "Galaxy jobs will run when cluster resources are available and will not preempt existing workloads." +description: "By default, Galaxy jobs will not preempt existing workloads but will run when cluster resources are available. Depending on the cluster setup, the preemption value can be modified to prompt scaling of the cluster for the computation." {{ end }} diff --git a/galaxy/templates/pv-s3fs.yaml b/galaxy/templates/pv-s3fs.yaml index 2948960c..4b0fb2fd 100644 --- a/galaxy/templates/pv-s3fs.yaml +++ b/galaxy/templates/pv-s3fs.yaml @@ -1,4 +1,5 @@ {{- if and .Values.refdata.enabled (eq .Values.refdata.type "s3csi") }} +--- apiVersion: v1 kind: PersistentVolume metadata: diff --git a/galaxy/templates/pvc-galaxy.yaml b/galaxy/templates/pvc-galaxy.yaml index c6426020..975f5c53 100644 --- a/galaxy/templates/pvc-galaxy.yaml +++ b/galaxy/templates/pvc-galaxy.yaml @@ -1,4 +1,5 @@ {{ if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +--- apiVersion: v1 kind: PersistentVolumeClaim metadata: @@ -23,4 +24,3 @@ spec: requests: storage: {{ .Values.persistence.size | quote }} {{ end }} ---- diff --git a/galaxy/templates/pvc-refdata.yaml b/galaxy/templates/pvc-refdata.yaml index a537eb03..a258f92b 100644 --- a/galaxy/templates/pvc-refdata.yaml +++ b/galaxy/templates/pvc-refdata.yaml @@ -1,4 +1,5 @@ {{- if .Values.refdata.enabled }} +--- apiVersion: v1 kind: PersistentVolumeClaim metadata: @@ -18,5 +19,4 @@ spec: {{- if eq $.Values.refdata.type "cvmfs" }} storageClassName: {{ tpl .Values.cvmfs.storageClassName . }} {{- end }} ---- {{- end }} diff --git a/galaxy/templates/rabbitmqcluster.yaml b/galaxy/templates/rabbitmqcluster.yaml index f215fc3b..1b100004 100644 --- a/galaxy/templates/rabbitmqcluster.yaml +++ b/galaxy/templates/rabbitmqcluster.yaml @@ -1,4 +1,5 @@ {{- if and .Values.rabbitmq.enabled (not .Values.rabbitmq.existingCluster) }} +--- apiVersion: rabbitmq.com/v1beta1 kind: RabbitmqCluster metadata: diff --git a/galaxy/templates/rbac-job.yaml b/galaxy/templates/rbac-job.yaml index f1180267..f80b5e1a 100644 --- a/galaxy/templates/rbac-job.yaml +++ b/galaxy/templates/rbac-job.yaml @@ -1,4 +1,5 @@ {{ if .Values.rbac.enabled }} +--- kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: diff --git a/galaxy/templates/secret-galaxy.yaml b/galaxy/templates/secret-galaxy.yaml index 3ee42943..5c0ed980 100644 --- a/galaxy/templates/secret-galaxy.yaml +++ b/galaxy/templates/secret-galaxy.yaml @@ -1,3 +1,4 @@ +--- apiVersion: v1 kind: Secret type: Opaque diff --git a/galaxy/templates/service-galaxy.yaml b/galaxy/templates/service-galaxy.yaml index 35fd5a1f..666dc20c 100644 --- a/galaxy/templates/service-galaxy.yaml +++ b/galaxy/templates/service-galaxy.yaml @@ -1,3 +1,4 @@ +--- apiVersion: v1 kind: Service metadata: diff --git a/galaxy/templates/service-nginx.yaml b/galaxy/templates/service-nginx.yaml index 1b1e9f04..c2cef838 100644 --- a/galaxy/templates/service-nginx.yaml +++ b/galaxy/templates/service-nginx.yaml @@ -1,3 +1,4 @@ +--- apiVersion: v1 kind: Service metadata: diff --git a/galaxy/templates/service-tusd.yaml b/galaxy/templates/service-tusd.yaml index 0f4a7454..572848eb 100644 --- a/galaxy/templates/service-tusd.yaml +++ b/galaxy/templates/service-tusd.yaml @@ -1,4 +1,5 @@ {{ if .Values.tusd.enabled -}} +--- apiVersion: v1 kind: Service metadata: diff --git a/galaxy/templates/serviceaccount.yaml b/galaxy/templates/serviceaccount.yaml index 8560763e..435da946 100644 --- a/galaxy/templates/serviceaccount.yaml +++ b/galaxy/templates/serviceaccount.yaml @@ -1,4 +1,5 @@ {{- if .Values.serviceAccount.create -}} +--- apiVersion: v1 kind: ServiceAccount metadata: diff --git a/galaxy/values.yaml b/galaxy/values.yaml index fdc57bab..ba5e6f54 100644 --- a/galaxy/values.yaml +++ b/galaxy/values.yaml @@ -464,13 +464,20 @@ configs: k8s: load: galaxy.jobs.runners.kubernetes:KubernetesJobRunner k8s_use_service_account: true - k8s_persistent_volume_claims: |- + k8s_data_volume_claim: |- + {{ template "galaxy.pvcname" . -}}:{{ .Values.persistence.mountPath -}}:r + k8s_working_volume_claim: |- {{ template "galaxy.pvcname" . -}}:{{ .Values.persistence.mountPath -}} + k8s_persistent_volume_claims: |- + {{ template "galaxy.pvcname" . -}}/config:{{ .Values.persistence.mountPath -}}/config:r, + {{- template "galaxy.pvcname" . -}}/tmp:{{ .Values.persistence.mountPath -}}/tmp:rw, + {{- template "galaxy.pvcname" . -}}/tool-data:{{ .Values.persistence.mountPath -}}/tool-data:r, + {{- template "galaxy.pvcname" . -}}/tools:{{ .Values.persistence.mountPath -}}/tools:r {{- if .Values.refdata.enabled -}} - ,{{- template "galaxy.fullname" $ -}}-refdata-gxy-pvc/data.galaxyproject.org:/cvmfs/data.galaxyproject.org + ,{{- template "galaxy.fullname" $ -}}-refdata-gxy-pvc/data.galaxyproject.org:/cvmfs/data.galaxyproject.org:r {{- end -}} {{- if .Values.setupJob.downloadToolConfs.enabled -}} - ,{{ template "galaxy.pvcname" . -}}/{{ .Values.setupJob.downloadToolConfs.volume.subPath }}:{{ .Values.setupJob.downloadToolConfs.volume.mountPath -}} + ,{{ template "galaxy.pvcname" . -}}/{{ .Values.setupJob.downloadToolConfs.volume.subPath }}:{{ .Values.setupJob.downloadToolConfs.volume.mountPath -}}:r {{- end -}} {{- if .Values.extraVolumes -}} {{- template "galaxy.extra_pvc_mounts" . -}} @@ -503,7 +510,7 @@ configs: rules_module: tpv.rules docker_default_container_id: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" tpv_config_files: - - https://raw.githubusercontent.com/galaxyproject/tpv-shared-database/main/tools.yml + - https://gxy.io/tpv/db.yml - lib/galaxy/jobs/rules/tpv_rules_local.yml # limits: # - type: registered_user_concurrent_jobs @@ -580,22 +587,35 @@ configs: toolshed.g2.bx.psu.edu/repos/bgruening/diff/diff/3.7+galaxy0 toolshed.g2.bx.psu.edu/repos/bgruening/pharmcat/pharmcat/1.3.1+galaxy0 toolshed.g2.bx.psu.edu/repos/crs4/taxonomy_krona_chart/taxonomy_krona_chart/2.7.1+galaxy0 - toolshed.g2.bx.psu.edu/repos/devteam/fastqc/fastqc/0.72+galaxy1 + toolshed.g2.bx.psu.edu/repos/devteam/fastqc/fastqc/0.74+galaxy0 toolshed.g2.bx.psu.edu/repos/devteam/fastqc/fastqc/0.73+galaxy0 + toolshed.g2.bx.psu.edu/repos/devteam/fastqc/fastqc/0.72+galaxy1 + toolshed.g2.bx.psu.edu/repos/devteam/fastqc/fastqc/0.72 + toolshed.g2.bx.psu.edu/repos/iuc/dexseq/dexseq/1.44+galaxy0 toolshed.g2.bx.psu.edu/repos/iuc/dexseq/dexseq/1.28.1+galaxy2 + toolshed.g2.bx.psu.edu/repos/iuc/fastp/fastp/0.23.2+galaxy0 toolshed.g2.bx.psu.edu/repos/iuc/fastp/fastp/0.20.1+galaxy0 toolshed.g2.bx.psu.edu/repos/iuc/jbrowse/jbrowse_to_standalone/1.16.11+galaxy0 toolshed.g2.bx.psu.edu/repos/iuc/jbrowse/jbrowse_to_standalone/1.16.11+galaxy1 - toolshed.g2.bx.psu.edu/repos/iuc/jbrowse/jbrowse/1.16.11+galaxy0 toolshed.g2.bx.psu.edu/repos/iuc/jbrowse/jbrowse/1.16.11+galaxy1 + toolshed.g2.bx.psu.edu/repos/iuc/jbrowse/jbrowse/1.16.11+galaxy0 toolshed.g2.bx.psu.edu/repos/iuc/macs2/macs2_callpeak/2.1.1.20160309.6 toolshed.g2.bx.psu.edu/repos/iuc/meme_meme/meme_meme/5.0.5.0 + toolshed.g2.bx.psu.edu/repos/iuc/multiqc/multiqc/1.11+galaxy1 toolshed.g2.bx.psu.edu/repos/iuc/multiqc/multiqc/1.11+galaxy0 toolshed.g2.bx.psu.edu/repos/iuc/multiqc/multiqc/1.9+galaxy1 + toolshed.g2.bx.psu.edu/repos/iuc/multiqc/multiqc/1.8+galaxy1 + toolshed.g2.bx.psu.edu/repos/iuc/multiqc/multiqc/1.6 + toolshed.g2.bx.psu.edu/repos/iuc/multiqc/multiqc/1.5.0 toolshed.g2.bx.psu.edu/repos/iuc/prestor_abseq3/prestor_abseq3/0.6.2+galaxy0 toolshed.g2.bx.psu.edu/repos/iuc/quast/quast/5.0.2+galaxy3 toolshed.g2.bx.psu.edu/repos/iuc/seurat/seurat/4.1.0+galaxy0 + toolshed.g2.bx.psu.edu/repos/iuc/snpeff/snpEff/4.3r.1 + toolshed.g2.bx.psu.edu/repos/iuc/snpeff/snpEff/4.3+T.galaxy2 toolshed.g2.bx.psu.edu/repos/iuc/snpeff/snpEff/4.3+T.galaxy1 + toolshed.g2.bx.psu.edu/repos/bgruening/plotly_regression_performance_plots/plotly_regression_performance_plots/0.1 + toolshed.g2.bx.psu.edu/repos/bgruening/plotly_parallel_coordinates_plot/plotly_parallel_coordinates_plot/0.2 + toolshed.g2.bx.psu.edu/repos/bgruening/plotly_parallel_coordinates_plot/plotly_parallel_coordinates_plot/0.1 build_sites.yml: - type: ucsc file: "{{if .Values.refdata.enabled}}/cvmfs/data.galaxyproject.org/managed/location/ucsc_build_sites.txt{{else}}/galaxy/server/tool-data/shared/ucsc/ucsc_build_sites.txt.sample{{end}}" @@ -624,6 +644,7 @@ jobs: #- Assign a [priorityClass](https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#priorityclass) to the dispatched jobs. enabled: true existingClass: "" + value: -1000 rules: tpv_rules_local.yml: global: diff --git a/scripts/tag-and-release.sh b/scripts/tag-and-release.sh new file mode 100755 index 00000000..0a110ada --- /dev/null +++ b/scripts/tag-and-release.sh @@ -0,0 +1,88 @@ +#!/usr/bin/env bash + +# Determine our name for use in the help message. +SCRIPT=$(basename $(realpath $0)) + +# ANSI color codes for the console. +reset="\033[0m" +bold="\033[1m" +ital="\033[3m" # does not work on OS X + +# Function used to highlight text. +function hi() { + echo -e "$bold$@$reset" +} + +# The last version that was tagged. +LATEST=$(git describe --tags `git rev-list --tags --max-count=1` | tr -d 'v') + +# Date since the last release. We will search for commits newer than this. +SINCE=$(git log -1 --format=%as v$LATEST) + +function help() { + less -RX << EOF + +$(hi NAME) + $SCRIPT + +$(hi DESCRIPTION) + Tags and generates a GitHub release for all commits that have "Automatic" in the + commit messages. These will be the commits that were generated by the packaging + GitHub action. + +$(hi SYNOPSIS) + $SCRIPT --since DATE --latest TAG_NAME + +$(hi OPTIONS) + -l|--latest the tag name of the last commit that was tagged. Default to $LATEST + -s|--since search the git log after this date (YYYY-MM-DD). Defaults to $SINCE + -h|--help prints this help message and exits + + The $(hi --latest) and $(hi --since) fields will be determined from the Git log + if they are not provided. + +Press $(hi Q) to quit this help. + +EOF +} + +while [[ $# > 0 ]] ; do + case $1 in + -l|--latest) + LATEST=$2 + shift + ;; + -s|--since) + SINCE=$2 + shift + ;; + -h|--help|help) + help + exit + ;; + *) + echo "Invalid option $1" + echo "Run $(hi $SCRIPT help) for usage information" + exit + esac + shift +done +PREVIOUS="v$LATEST" + +# Search the git log for commits that did an Automatic version bump. +git log --oneline --grep=Automatic --since=$SINCE | awk '{print $1,$NF}' | grep -v $LATEST | tail -r | while read -r line ; do + commit=$(echo $line | awk '{print $1}') + tag=v$(echo $line | awk '{print $2}') + # Get the actual date the commit was made + export GIT_COMMITTER_DATE=$(git show --format=%aD $commit | head -1) + # Tag the commit + echo "Tagging $commit as $tag $GIT_COMMITTER_DATE" + git checkout $commit + git tag -a -m "Automatic tagging of $tag" $tag + git push origin $tag + # Generate the release. + gh release create $tag --generate-notes --latest --notes-start-tag $PREVIOUS + PREVIOUS=$tag +done +git checkout master +echo "Done." \ No newline at end of file