OILS / soil / sourcehut.sh View on Github | oilshell.org

81 lines, 33 significant
1#!/usr/bin/env bash
2#
3# Usage:
4# soil/sourcehut.sh <function name>
5
6set -o nounset
7set -o pipefail
8set -o errexit
9
10# Relevant docs:
11#
12# https://man.sr.ht/tutorials/getting-started-with-builds.md
13# https://man.sr.ht/builds.sr.ht/#secrets
14# https://man.sr.ht/builds.sr.ht/compatibility.md
15#
16# Basically, it supports up to 4 files called .builds/*.yml.
17# And we need to upload an SSH key as secret via the web UI.
18
19keygen() {
20 ssh-keygen -t rsa -b 4096 -C "andyc sr.ht" -f rsa_srht
21}
22
23#
24# Run remotely
25#
26
27publish-html-assuming-ssh-key() {
28 local job_name=$1
29
30 if true; then
31 soil/web-worker.sh deploy-job-results 'sourcehut-' $JOB_ID $job_name JOB_ID JOB_URL
32 else
33 soil/web-worker.sh deploy-test-wwz # dummy data that doesn't depend on the build
34 fi
35
36 local commit_hash
37 # written by save-metadata in soil/worker.sh
38 commit_hash=$(cat _tmp/soil/commit-hash.txt)
39
40 # Note: the directory structure will be overlapping, unlike Github which has
41 # GITHUB_RUN_NUMBER
42 #
43 # sourcehut-jobs/
44 # 1234/foo.wwz # individual jobs
45 # 1235/bar.wwz
46 # git-0101abab/index.html # commit hash
47
48 time soil/web-worker.sh remote-event-job-done 'sourcehut-' "git-$commit_hash"
49}
50
51#
52# For create-cache.yml
53#
54
55compress-dir() {
56 local dir=$1
57
58 local out_dir=_tmp/deps-cache
59 mkdir -p $out_dir
60
61 local name=$(basename $dir)
62
63 local out=$out_dir/$name.tar.xz
64
65 log "Compressing $dir -> $out"
66
67 tar --create --xz --file $out $dir
68 ls -l $out
69}
70
71compress-deps() {
72 ### Compress output of tarball-deps and spec-deps
73
74 compress-dir _deps/cpython-full
75 compress-dir _deps/re2c-1.0.3
76 compress-dir _deps/cmark-0.29.0
77
78 compress-dir _deps/spec-bin
79}
80
81"$@"