You've already forked git-docker
							
							
		
			
				
	
	
		
			100 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| if [[ ! -z "${DRONE_WORKSPACE}" ]]; then
 | |
| 	cd ${DRONE_WORKSPACE}
 | |
| fi
 | |
| 
 | |
| # if the home directory is not set (which should
 | |
| # never be the case) we default to /root
 | |
| 
 | |
| if [[ -z "${HOME}" ]]; then
 | |
| 	echo "HOME directory not set; default to /root"
 | |
| 	export HOME=/root
 | |
| fi
 | |
| 
 | |
| # if the home directory does not exist it should
 | |
| # be created.
 | |
| 
 | |
| if [ ! -d "${HOME}" ]; then
 | |
| 	echo "HOME directory does not exist; creating ${HOME}"
 | |
| 	mkdir -p ${HOME}
 | |
| fi
 | |
| 
 | |
| # if the netrc enviornment variables exist, write
 | |
| # the netrc file.
 | |
| 
 | |
| if [[ ! -z "${DRONE_NETRC_MACHINE}" ]]; then
 | |
| 	cat <<EOF > ${HOME}/.netrc
 | |
| machine ${DRONE_NETRC_MACHINE}
 | |
| login ${DRONE_NETRC_USERNAME}
 | |
| password ${DRONE_NETRC_PASSWORD}
 | |
| EOF
 | |
| fi
 | |
| 
 | |
| # if the ssh_key environment variable exists, write
 | |
| # the ssh key and add the netrc machine to the
 | |
| # known hosts file.
 | |
| 
 | |
| if [[ ! -z "${DRONE_SSH_KEY}" ]]; then
 | |
| 	mkdir ${HOME}/.ssh
 | |
| 	echo -n "$DRONE_SSH_KEY" > ${HOME}/.ssh/id_rsa
 | |
| 	chmod 600 ${HOME}/.ssh/id_rsa
 | |
| 
 | |
| 	touch ${HOME}/.ssh/known_hosts
 | |
| 	chmod 600 ${HOME}/.ssh/known_hosts
 | |
| 	ssh-keyscan -H ${DRONE_NETRC_MACHINE} > /etc/ssh/ssh_known_hosts 2> /dev/null
 | |
| fi
 | |
| 
 | |
| # AWS codecommit support using AWS access key & secret key
 | |
| # Refer: https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-unixes.html
 | |
| 
 | |
| if [[ ! -z "$DRONE_AWS_ACCESS_KEY" ]]; then
 | |
| 	aws configure set aws_access_key_id $DRONE_AWS_ACCESS_KEY
 | |
| 	aws configure set aws_secret_access_key $DRONE_AWS_SECRET_KEY
 | |
| 	aws configure set default.region $DRONE_AWS_REGION
 | |
| 
 | |
| 	git config --global credential.helper '!aws codecommit credential-helper $@'
 | |
| 	git config --global credential.UseHttpPath true
 | |
| fi
 | |
| 
 | |
| # configure git global behavior and parameters via the
 | |
| # following environment variables:
 | |
| 
 | |
| 
 | |
| if [[ -z "${DRONE_COMMIT_AUTHOR_NAME}" ]]; then
 | |
| 	export DRONE_COMMIT_AUTHOR_NAME=drone
 | |
| fi
 | |
| 
 | |
| if [[ -z "${DRONE_COMMIT_AUTHOR_EMAIL}" ]]; then
 | |
| 	export DRONE_COMMIT_AUTHOR_EMAIL=drone@localhost
 | |
| fi
 | |
| 
 | |
| export GIT_AUTHOR_NAME=${DRONE_COMMIT_AUTHOR_NAME}
 | |
| export GIT_AUTHOR_EMAIL=${DRONE_COMMIT_AUTHOR_EMAIL}
 | |
| export GIT_COMMITTER_NAME=${DRONE_COMMIT_AUTHOR_NAME}
 | |
| export GIT_COMMITTER_EMAIL=${DRONE_COMMIT_AUTHOR_EMAIL}
 | |
| 
 | |
| # invoke the sub-script based on the drone event type.
 | |
| # TODO we should ultimately look at the ref, since
 | |
| # we need something compatible with deployment events.
 | |
| 
 | |
| CLONE_TYPE=$DRONE_BUILD_EVENT
 | |
| case $DRONE_COMMIT_REF in
 | |
|   refs/tags/* ) CLONE_TYPE=tag ;;
 | |
|   refs/pull/* ) CLONE_TYPE=pull_request ;;
 | |
|   refs/pull-request/* ) CLONE_TYPE=pull_request ;;
 | |
|   refs/merge-requests/* ) CLONE_TYPE=pull_request ;;
 | |
| esac
 | |
| 
 | |
| case $CLONE_TYPE in
 | |
| pull_request)
 | |
| 	clone-pull-request
 | |
| 	;;
 | |
| tag)
 | |
| 	clone-tag
 | |
| 	;;
 | |
| *)
 | |
| 	clone-commit
 | |
| 	;;
 | |
| esac
 | 
