module publish import common asset scripts: path: ../asset/publish test PublishFromDependency: node n shell on n: mkdir workdir cp ${scripts.path}/from_dependency.yaml workdir/minici.yaml spawn on n as p args [ "--destination=second:second_override", "--destination=third:./third", "--destination=fourth:fourth/with_dir", "--destination=fifth:fifth/with_dir", "workdir/minici.yaml", "run", "publish" ] expect_result from p: of "gen" result "done" of "publish" result "done" local: expect /(.*)/ from p capture done guard (done == "run-finish") shell on n as listing: find . -path ./workdir/.minici -prune -o -type f -print echo DONE expect from listing: /.\/workdir\/minici.yaml/ /.\/workdir\/first\/dest\/x/ /.\/workdir\/first\/dest\/dir\/y/ /.\/second_override\/dir2\/subdir\/z/ /.\/third\/dir\/y/ /.\/third\/dir2\/subdir\/z/ /.\/fourth\/with_dir\/path\/for\/artifact/ /.\/fourth\/with_dir\/dir\/for\/artifact\/x/ /.\/fifth\/with_dir\/path\/for\/artifact\/z/ /.\/fifth\/with_dir\/dir\/for\/artifact\/subdir\/z/ /.\/fifth\/with_dir\/path2\/for\/artifact\/z2/ /.\/fifth\/with_dir\/path2\/for\/artifact\/subdir\/z/ /.\/fifth\/with_dir\/dir2\/for\/artifact\/dir2\/z2/ /.\/fifth\/with_dir\/dir2\/for\/artifact\/dir2\/subdir\/z/ /(.*)/ capture done guard (done == "DONE") test PublishFromSelf: node n shell on n: mkdir workdir cp ${scripts.path}/from_self.yaml workdir/minici.yaml spawn on n as p args [ "--destination=dest:destination", "workdir/minici.yaml", "run", "gen_publish" ] expect_result from p: of "gen_publish" result "done" local: expect /(.*)/ from p capture done guard (done == "run-finish") shell on n as listing: find . -path ./workdir/.minici -prune -o -type f -print echo DONE expect from listing: /.\/workdir\/minici.yaml/ /.\/destination\/x/ /.\/destination\/y/ /(.*)/ capture done guard (done == "DONE") test PushRepo: node n shell on n as git_init: cp ${scripts.path}/push.yaml minici.yaml mkdir workdir git -C workdir -c init.defaultBranch=master init -q git -C workdir -c user.name=test -c user.email=test commit -q --allow-empty -m 'initial commit' git -C workdir rev-parse HEAD git clone --bare workdir target.git touch workdir/a git -C workdir add a git -C workdir -c user.name=test -c user.email=test commit -q -m a git -C workdir rev-parse HEAD git -C workdir rev-parse HEAD^{tree} touch workdir/b git -C workdir add b git -C workdir -c user.name=test -c user.email=test commit -q -m b git -C workdir rev-parse HEAD git -C workdir rev-parse HEAD^{tree} touch workdir/c git -C workdir add c git -C workdir -c user.name=test -c user.email=test commit -q -m c git -C workdir rev-parse HEAD git -C workdir rev-parse HEAD^{tree} touch workdir/d git -C workdir add d git -C workdir -c user.name=test -c user.email=test commit -q -m d git -C workdir rev-parse HEAD git -C workdir rev-parse HEAD^{tree} touch workdir/e git -C workdir add e git -C workdir -c user.name=test -c user.email=test commit -q -m e git -C workdir rev-parse HEAD git -C workdir rev-parse HEAD^{tree} git -C workdir reset --hard HEAD~5 git -C workdir rev-parse HEAD expect /([0-9a-f]+)/ from git_init capture c_init expect /([0-9a-f]+)/ from git_init capture ca expect /([0-9a-f]+)/ from git_init capture ta expect /([0-9a-f]+)/ from git_init capture cb expect /([0-9a-f]+)/ from git_init capture tb expect /([0-9a-f]+)/ from git_init capture cc expect /([0-9a-f]+)/ from git_init capture tc expect /([0-9a-f]+)/ from git_init capture cd expect /([0-9a-f]+)/ from git_init capture td expect /([0-9a-f]+)/ from git_init capture ce expect /([0-9a-f]+)/ from git_init capture te expect /([0-9a-f]+)/ from git_init capture c_end guard (c_init == c_end) let cmd_run = [ "--repo=source_repo:workdir", "--repo=target_repo:target.git", "run" ] local: spawn on n as p args (cmd_run ++ [ "push_job.$cb" ]) killwith SIGINT expect from p: /job-enqueue push_job.$cb/ /job-start push_job.$cb/ /job-finish push_job.$cb done/ expect /(.*)/ from p capture finish guard (finish == "run-finish") shell on n as git_check: git -C target.git rev-parse HEAD expect /([0-9a-f]+)/ from git_check capture cur_target guard (cur_target == cb)