add nextflow d30e48d
This commit is contained in:
94
nextflow/release.sh
Executable file
94
nextflow/release.sh
Executable file
@@ -0,0 +1,94 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Nextflow Release Script
|
||||
#
|
||||
# This script performs the complete Nextflow release process including:
|
||||
# - Building and assembling artifacts
|
||||
# - Uploading to S3 and Maven repositories
|
||||
# - Releasing plugins to registry
|
||||
# - Creating GitHub releases with signed artifacts
|
||||
#
|
||||
# REQUIRED SECRETS/ENVIRONMENT VARIABLES FOR GITHUB ACTIONS:
|
||||
#
|
||||
# AWS S3 Deployment:
|
||||
# NXF_AWS_ACCESS - AWS Access Key for deploying to s3://www2.nextflow.io
|
||||
# NXF_AWS_SECRET - AWS Secret Key for S3 deployment
|
||||
#
|
||||
# Maven Repository (Seqera S3-based):
|
||||
# AWS_ACCESS_KEY_ID - AWS credentials for Maven repository access
|
||||
# AWS_SECRET_ACCESS_KEY - AWS secret for Maven repository access
|
||||
#
|
||||
# GitHub Integration:
|
||||
# GITHUB_TOKEN - For creating releases and uploading assets
|
||||
#
|
||||
# Plugin Registry:
|
||||
# NPR_API_URL - Nextflow Plugin Registry API URL
|
||||
# NPR_API_KEY - Nextflow Plugin Registry API key
|
||||
#
|
||||
# Container Registry Authentication:
|
||||
# DOCKERHUB_USERNAME - Docker Hub username for container publishing
|
||||
# DOCKERHUB_TOKEN - Docker Hub token/password for container publishing
|
||||
# SEQERA_PUBLIC_CR_PASSWORD - Seqera public container registry password
|
||||
#
|
||||
# Usage: Only run when commit message contains '[release]'
|
||||
#
|
||||
set -e
|
||||
|
||||
echo "=== Starting Nextflow Release Process ==="
|
||||
echo "Commit message: ${GITHUB_HEAD_COMMIT_MESSAGE:-$(git log -1 --pretty=format:'%s')}"
|
||||
|
||||
# Check required environment variables
|
||||
echo "=== Checking required environment variables ==="
|
||||
REQUIRED_VARS=(
|
||||
"NXF_AWS_ACCESS"
|
||||
"NXF_AWS_SECRET"
|
||||
"AWS_ACCESS_KEY_ID"
|
||||
"AWS_SECRET_ACCESS_KEY"
|
||||
"GITHUB_TOKEN"
|
||||
"GITHUB_RUN_NUMBER"
|
||||
"GITHUB_SHA"
|
||||
"NPR_API_URL"
|
||||
"NPR_API_KEY"
|
||||
)
|
||||
|
||||
MISSING_VARS=()
|
||||
for var in "${REQUIRED_VARS[@]}"; do
|
||||
if [ -z "${!var}" ]; then
|
||||
MISSING_VARS+=("$var")
|
||||
else
|
||||
echo "✓ $var is set"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${#MISSING_VARS[@]} -ne 0 ]; then
|
||||
echo "❌ ERROR: The following required environment variables are not set:"
|
||||
for var in "${MISSING_VARS[@]}"; do
|
||||
echo " - $var"
|
||||
done
|
||||
echo "Please ensure all required environment variables are configured before running the release."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✅ All required environment variables are set"
|
||||
|
||||
echo "🔧 === Step 1: Assemble, upload, and deploy ==="
|
||||
make assemble upload deploy
|
||||
echo "✅ Step 1 completed successfully"
|
||||
echo ""
|
||||
|
||||
echo "📦 === Step 2: Publish artifacts ==="
|
||||
make publish-artifacts
|
||||
echo "✅ Step 2 completed successfully"
|
||||
echo ""
|
||||
|
||||
echo "🔌 === Step 3: Release plugins ==="
|
||||
make release-plugins
|
||||
echo "✅ Step 3 completed successfully"
|
||||
echo ""
|
||||
|
||||
echo "🚀 === Step 4: Final release ==="
|
||||
make release
|
||||
echo "✅ Step 4 completed successfully"
|
||||
echo ""
|
||||
|
||||
echo "🎉 === Release process completed successfully ==="
|
||||
Reference in New Issue
Block a user