83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| function debug() {
 | |
|     echo "::debug file=${BASH_SOURCE[0]},line=${BASH_LINENO[0]}::$1"
 | |
| }
 | |
| 
 | |
| function warning() {
 | |
|     echo "::warning file=${BASH_SOURCE[0]},line=${BASH_LINENO[0]}::$1"
 | |
| }
 | |
| 
 | |
| function error() {
 | |
|     echo "::error file=${BASH_SOURCE[0]},line=${BASH_LINENO[0]}::$1"
 | |
| }
 | |
| 
 | |
| function add_mask() {
 | |
|     echo "::add-mask::$1"
 | |
| }
 | |
| 
 | |
| if [ -z "$GITHUB_ACTOR" ]; then
 | |
|     error "GITHUB_ACTOR environment variable is not set"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| if [ -z "$GITHUB_REPOSITORY" ]; then
 | |
|     error "GITHUB_REPOSITORY environment variable is not set"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| if [ -z "$GH_PERSONAL_ACCESS_TOKEN" ]; then
 | |
|     error "GH_PERSONAL_ACCESS_TOKEN environment variable is not set"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| if [ -z "$WIKI_PATH" ]; then
 | |
|     echo "WIKI_PATH environment variable is not set"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| add_mask "${GH_PERSONAL_ACCESS_TOKEN}"
 | |
| 
 | |
| if [ -z "${WIKI_COMMIT_MESSAGE:-}" ]; then
 | |
|     debug "WIKI_COMMIT_MESSAGE not set, using default"
 | |
|     WIKI_COMMIT_MESSAGE='Automatically publish wiki'
 | |
| fi
 | |
| 
 | |
| GIT_REPOSITORY_URL="https://${GH_PERSONAL_ACCESS_TOKEN}@github.com/$GITHUB_REPOSITORY.wiki.git"
 | |
| 
 | |
| debug "Checking out wiki repository"
 | |
| tmp_dir=$(mktemp -d -t ci-XXXXXXXXXX)
 | |
| (
 | |
|     cd "$tmp_dir" || exit 1
 | |
|     git init
 | |
|     git config user.name "$GITHUB_ACTOR"
 | |
|     git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
 | |
|     git pull "$GIT_REPOSITORY_URL"
 | |
| )
 | |
| 
 | |
| debug "Rsync contents of $WIKI_PATH"
 | |
| rsync -q -a --delete --exclude=.git "$GITHUB_WORKSPACE/$WIKI_PATH/" "$tmp_dir"
 | |
| 
 | |
| if [ ! -r "$tmp_dir/Home.md" ]; then
 | |
|     debug "Copy README.md to wiki/Home.md"
 | |
|     rsync -q -a "$GITHUB_WORKSPACE/README.md" "$tmp_dir/Home.md"
 | |
| fi
 | |
| 
 | |
| debug "Rewriting images path to absolute"
 | |
| (
 | |
|     cd "$tmp_dir" || exit 1
 | |
|     find . -type f -exec sed -Ei 's@([ (])([^( ]+)(\/wiki_static\/.+?\.(png|jpe?g|svg)[ \)])@\1https://github.com/Flipper-Zero/flipperzero-firmware-community/raw/master\3@' {} \;
 | |
| )
 | |
| 
 | |
| debug "Committing and pushing changes"
 | |
| (
 | |
|     cd "$tmp_dir" || exit 1
 | |
|     git add .
 | |
|     git commit -m "$WIKI_COMMIT_MESSAGE"
 | |
|     git push --set-upstream "$GIT_REPOSITORY_URL" master
 | |
| )
 | |
| 
 | |
| rm -rf "$tmp_dir"
 | |
| exit 0
 | |
| 
 | 
