name: Build and Deploy

on:
  push:
    paths-ignore:
      - "**.md"
    branches:
      - master

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Setup Node.js
        uses: actions/setup-node@v3.3.0
        with:
          cache: "yarn"
      - run: yarn install --prefer-offline
      - run: yarn build && sed -i 's/fonts.gstatic.com/fonts.kavin.rocks/g' dist/assets/*.css && cp dist/index.html dist/ipfs-404.html
      - uses: aquiladev/ipfs-action@v0.2.1
        id: ipfs-add
        with:
          path: ./dist
          service: pinata
          pinataKey: ${{ secrets.PINATA_API_KEY }}
          pinataSecret: ${{ secrets.PINATA_API_SECRET }}
          pinataPinName: piped
      - name: Update DNSLink
        run: npx dnslink-cloudflare -d kavin.rocks -l /ipfs/${{ steps.ipfs-add.outputs.hash }} -r _dnslink.piped-ipfs
        env:
          CF_API_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }}