feat: use blob protocol capabilities (#92) #257
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
env: | |
# path to built static site directory | |
outputDir: out | |
jobs: | |
preview: | |
name: Preview | |
if: (github.ref != 'refs/heads/main') | |
runs-on: ubuntu-latest | |
permissions: | |
pull-requests: write | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/pnpm | |
- run: pnpm lint | |
- run: pnpm test | |
- run: pnpm build | |
- name: Add to web3.storage | |
uses: web3-storage/add-to-web3@v3 | |
id: ipfs | |
with: | |
path_to_add: ${{ env.outputDir }} | |
secret_key: ${{ secrets.W3_PRINCIPAL }} | |
proof: ${{ secrets.W3_PROOF }} | |
- name: Deploy preview build to Cloudflare Pages | |
uses: mathiasvr/[email protected] | |
id: cloudflare | |
with: | |
run: npx wrangler pages deploy --project-name w3up-website-staging --branch "$GITHUB_REF_NAME" --commit-hash "$GITHUB_SHA" ${{ env.outputDir }} | |
env: | |
CLOUDFLARE_API_TOKEN: ${{ secrets.CF_TOKEN }} | |
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }} | |
- name: Find Cloudflare Pages preview URL | |
uses: mathiasvr/[email protected] | |
id: cloudflare_url | |
with: | |
run: egrep -o 'https?://[^ ]+' <(echo "${{ steps.cloudflare.outputs.stdout }}") | |
- name: Find Current Pull Request | |
uses: jwalton/[email protected] | |
id: finder | |
- name: Update Preview URLs PR Comment | |
uses: marocchino/[email protected] | |
with: | |
number: ${{ steps.finder.outputs.pr }} | |
message: | | |
### Website preview πβ¨ | |
- π https://${{ steps.ipfs.outputs.cid }}.ipfs.w3s.link | |
- β οΈ ${{ steps.cloudflare_url.outputs.stdout }} | |
[build log](/${{ github.repository }}/actions/runs/${{ github.run_id }}) | |
- name: Add Preview URLs as Job Summary | |
run: | | |
echo " | |
### Website preview πβ¨ | |
- π https://${{ steps.ipfs.outputs.cid }}.ipfs.w3s.link | |
- β οΈ ${{ steps.cloudflare_url.outputs.stdout }} | |
" >> $GITHUB_STEP_SUMMARY | |
release: | |
name: Release | |
if: (github.event_name == 'push' && github.ref == 'refs/heads/main') | |
runs-on: ubuntu-latest | |
environment: | |
name: production | |
url: https://web3.storage | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/pnpm | |
- run: pnpm lint | |
- run: pnpm test | |
- run: pnpm build | |
- name: Add to web3.storage | |
uses: web3-storage/add-to-web3@v3 | |
id: ipfs | |
with: | |
path_to_add: ${{ env.outputDir }} | |
secret_key: ${{ secrets.W3_PRINCIPAL }} | |
proof: ${{ secrets.W3_PROOF }} | |
- name: Update IPFS DNSLink https://web3.storage | |
run: npx dnslink-cloudflare --record _dnslink --domain web3.storage --link /ipfs/${{ steps.ipfs.outputs.cid }} | |
env: | |
CF_API_TOKEN: ${{ secrets.CF_TOKEN }} | |
- name: Deploy preview build to Cloudflare Pages | |
uses: mathiasvr/[email protected] | |
id: cloudflare | |
with: | |
run: npx wrangler pages deploy --project-name w3up-website --branch "main" --commit-hash "$GITHUB_SHA" ${{ env.outputDir }} | |
env: | |
CLOUDFLARE_API_TOKEN: ${{ secrets.CF_TOKEN }} | |
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }} | |
- name: Add Preview URLs as Job Summary | |
run: | | |
echo " | |
### Deployed | |
β https://web3.storage | |
### Snapshot urls πβ¨ | |
- π https://${{ steps.ipfs.outputs.cid }}.ipfs.w3s.link | |
- β οΈ ${{ steps.cloudflare_url.outputs.stdout }} | |
" >> $GITHUB_STEP_SUMMARY |