-
-
Notifications
You must be signed in to change notification settings - Fork 0
106 lines (94 loc) · 2.95 KB
/
deploy-ipfs.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
name: Deploy to IPFS
permissions:
contents: read
on:
workflow_call:
inputs:
environment:
required: true
type: string
default_path:
type: string
default: /en/index.html
cluster_host:
type: string
default: /dns/cluster.ipfs.jonaharagon.net/tcp/443/tls/sni/cluster.ipfs.jonaharagon.net
cloudflare_domain:
type: string
default: privacyguides.org
gateway_address:
type: string
default: https://ipfs.jonaharagon.net
redirect_root:
type: string
default: en/
secrets:
CLUSTER_USERNAME:
CLUSTER_PASSWORD:
CLOUDFLARE_ZONE:
CLOUDFLARE_TOKEN:
outputs:
cid:
value: ${{ jobs.ipfs_cluster.outputs.cid }}
jobs:
ipfs_cluster:
runs-on: ubuntu-latest
permissions:
contents: read
environment:
name: ${{ inputs.environment }}
url: ${{ inputs.gateway_address }}/ipfs/${{ steps.deploy.outputs.cid }}${{ inputs.default_path }}
outputs:
cid: ${{ steps.deploy.outputs.cid }}
steps:
- uses: actions/download-artifact@v4
with:
pattern: site-build-*
merge-multiple: true
- run: |
for file in *.tar.gz; do tar -zxf "$file"; done
ls -la site/
- if: inputs.redirect_root != ''
uses: 1arp/create-a-file-action@0.4.4
with:
path: site
file: index.html
content: |
<html lang="en">
<head>
<title>Redirecting...</title>
<meta
http-equiv="refresh"
content="0; URL=./${{ inputs.redirect_root }}"
/>
</head>
<body>
<p>Redirecting you to the <a href="./en/index.html">
English</a> copy...</p>
</body>
</html>
- run: |
wget https://dist.ipfs.tech/ipfs-cluster-ctl/v1.0.8/ipfs-cluster-ctl_v1.0.8_linux-amd64.tar.gz
tar xvf ipfs-cluster-ctl_v1.0.8_linux-amd64.tar.gz
- id: deploy
run: |
root_cid=$(./ipfs-cluster-ctl/ipfs-cluster-ctl \
--host '${{ inputs.cluster_host }}' \
--basic-auth ${{ secrets.CLUSTER_USERNAME }}:${{ secrets.CLUSTER_PASSWORD }} \
add \
--quieter \
--local \
--wait \
--cid-version 1 \
--name "https://github.com/$GITHUB_REPOSITORY/commits/$GITHUB_SHA" \
--expire-in 2190h \
--recursive site )
echo "cid=$root_cid" >> $GITHUB_OUTPUT
- uses: textileio/cloudflare-update-dnslink@30414a408191218c8259e932ebdf4cbb7c652fe8
with:
cid: ${{ steps.deploy.outputs.cid }}
env:
CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }}
CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE }}
RECORD_DOMAIN: ${{ inputs.cloudflare_domain }}
RECORD_NAME: _dnslink.ipfs