pipeline {
    agent {
        kubernetes {
            cloud 'rsys-devel'
            defaultContainer 'miniforge3'
            inheritFrom 'miniforge'
        }
    }
    stages {
        stage("prepare") {
            parallel {
                stage("recipes repo") {
                    steps {
                        sh 'git clone https://github.com/Syph-and-VPD-Lab/auto-updated-bioconda-recipes.git'
                        dir('auto-updated-bioconda-recipes') {
                            sh 'git pull'
                            sh 'git pull origin update-autobigs-cli'
                            sh 'git checkout update-autobigs-cli'
                        }
                    }
                }
                stage("conda") {
                    steps {
                        sh 'conda env update -n base --file environment.yml'
                    }
                }
            }
        }
        stage("generate recipe") {
            steps {
                sh 'grayskull pypi autoBIGS.cli --maintainers "Harrison Deng"'
                sh 'python patch_recipe.py'
                sh 'cp -r autobigs-cli/* auto-updated-bioconda-recipes/recipes/autobigs-cli/.'
            }
        }
        stage("lint") {
            steps {
                dir('auto-updated-bioconda-recipes') {
                    sh 'bioconda-utils lint recipes/ --packages autobigs-cli'
                }
            }
        }
        stage("build") {
            steps {
                sh 'conda build bioconda-utils/recipes/autobigs-cli'
            }
        }
        stage("commit") {
            environment {
                TOKEN = credentials('github.com')
            }
            steps {
                dir('auto-updated-bioconda-recipes') {
                    sh 'git commit -a -m "Automatically updated autobigs-cli bioconda recipe to $(python ../pypi_latest_ver.py autoBIGS.cli)."'
                    sh 'git push https://${TOKEN}@github.com/Syph-and-VPD-Lab/auto-updated-bioconda-recipes.git update-autobigs-cli'
                }
            }
        }
    }
}