From 9a506acfa68a6d9993d3b392e956efbdcf4c17e3 Mon Sep 17 00:00:00 2001 From: Jefferson Mantovani Date: Fri, 14 Nov 2025 10:01:24 -0300 Subject: [PATCH 01/17] feat: show the reputation limit in the buy input --- .../BuyerSteps/BuyerSearchComponent.vue | 109 +++++++++++++++++- 1 file changed, 108 insertions(+), 1 deletion(-) diff --git a/src/components/BuyerSteps/BuyerSearchComponent.vue b/src/components/BuyerSteps/BuyerSearchComponent.vue index 12cad5f..06d86bc 100644 --- a/src/components/BuyerSteps/BuyerSearchComponent.vue +++ b/src/components/BuyerSteps/BuyerSearchComponent.vue @@ -11,6 +11,9 @@ import { getTokenImage, getNetworkImage } from "@/utils/imagesPath"; import { onClickOutside } from "@vueuse/core"; import { Networks } from "@/config/networks"; import { TokenEnum } from "@/model/NetworkEnum"; +import { getContract } from "@/blockchain/provider"; +import { reputationAbi } from "@/blockchain/abi"; +import { type Address } from "viem"; // Store reference const user = useUser(); @@ -34,6 +37,8 @@ const hasLiquidity = ref(true); const validDecimals = ref(true); const identification = ref(""); const selectedDeposits = ref(); +const reputationLimit = ref(null); +const exceedsReputationLimit = ref(false); import ChevronDown from "@/assets/chevronDown.svg"; import { useOnboard } from "@web3-onboard/vue"; @@ -42,6 +47,96 @@ import { getParticipantID } from "@/blockchain/events"; // Emits const emit = defineEmits(["tokenBuy"]); +const castAddrToKey = (address: Address): bigint => { + return BigInt(address) << BigInt(12); +}; + +const getUserCredit = async (userAddress: Address): Promise => { + try { + const { address, abi, client } = await getContract(true); + const userKey = castAddrToKey(userAddress); + + const userCredit = await client.readContract({ + address, + abi, + functionName: "userRecord", + args: [userKey], + }); + + return userCredit as bigint; + } catch (error) { + console.error("Error fetching user credit:", error); + return BigInt(0); + } +}; + +const getReputationAddress = async (): Promise
=> { + try { + const { address, abi, client } = await getContract(true); + + const reputationAddr = await client.readContract({ + address, + abi, + functionName: "reputation", + }); + + return reputationAddr as Address; + } catch (error) { + console.error("Error fetching reputation address:", error); + return null; + } +}; + +const getSpendLimit = async (userCredit: bigint): Promise => { + try { + const reputationAddr = await getReputationAddress(); + if (!reputationAddr) return BigInt(0); + + const { client } = await getContract(true); + + const spendLimit = await client.readContract({ + address: reputationAddr, + abi: reputationAbi, + functionName: "limiter", + args: [userCredit], + }); + + return spendLimit as bigint; + } catch (error) { + console.error("Error fetching spend limit:", error); + return BigInt(0); + } +}; + +const checkReputationLimit = async (inputValue: number): Promise => { + exceedsReputationLimit.value = false; + + if (!walletAddress.value) { + reputationLimit.value = null; + return; + } + + if (inputValue === 0) { + return; + } + + try { + const userCredit = await getUserCredit(walletAddress.value); + const spendLimitRaw = await getSpendLimit(userCredit); + + const spendLimitNumber = Number(spendLimitRaw); + reputationLimit.value = spendLimitNumber; + + exceedsReputationLimit.value = spendLimitNumber < inputValue; + enableConfirmButton.value = !exceedsReputationLimit.value; + + } catch (error) { + console.error("Error checking reputation limit:", error); + reputationLimit.value = null; + exceedsReputationLimit.value = false; + } +}; + // Blockchain methods const connectAccount = async (): Promise => { const { connectWallet } = useOnboard(); @@ -70,6 +165,7 @@ const handleInputEvent = (event: any): void => { } validDecimals.value = true; + checkReputationLimit(tokenValue.value); verifyLiquidity(); }; @@ -268,7 +364,7 @@ const handleSubmit = async (e: Event): Promise => {
=> { demanda
+
+ O valor excede o limite permitido pela sua reputaΓ§Γ£o. Limite mΓ‘ximo: {{ reputationLimit }} {{ selectedToken }} +
=> { v-if="walletAddress" type="submit" text="Confirmar Oferta" + :isDisabled="!enableConfirmButton" /> Date: Thu, 22 Jan 2026 10:52:37 -0300 Subject: [PATCH 02/17] chore: test pinata upload --- .github/workflows/ipfs-release.yml | 43 ++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ipfs-release.yml diff --git a/.github/workflows/ipfs-release.yml b/.github/workflows/ipfs-release.yml new file mode 100644 index 0000000..ec101d6 --- /dev/null +++ b/.github/workflows/ipfs-release.yml @@ -0,0 +1,43 @@ +name: Deploy to IPFS and Update Gist + +on: + push: + branches: + - release + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + + - name: Install dependencies + run: npm ci + + - name: Build SPA + run: npm run build + + - name: Upload build output to Pinata (API) + id: pinata_upload + env: + PINATA_JWT: ${{ secrets.PINATA_JWT }} + run: | + VERSION=$(jq -r .version package.json) + zip -r dist.zip dist + RESPONSE=$(curl -sSL -X POST "https://api.pinata.cloud/pinning/pinFileToIPFS" \ + -H "Authorization: Bearer $PINATA_JWT" \ + -F "file=@dist.zip;type=application/zip" \ + -F "pinataMetadata={\"name\":\"p2pix_${VERSION}\"};type=application/json") + CID=$(echo "$RESPONSE" | jq -r .IpfsHash) + if [ -z "$CID" ] || [ "$CID" = "null" ]; then + echo "Error: Could not parse CID from Pinata API response. Aborting." + echo "Upload output: $RESPONSE" + exit 1 + fi + echo "CID=$CID" >> $GITHUB_OUTPUT \ No newline at end of file diff --git a/package.json b/package.json index 646d1ac..3c2ae62 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "p2pix-front-end", - "version": "1.1.0", + "version": "1.2.0", "scripts": { "start": "vite --host=0.0.0.0 --port 3000", "build": "run-p type-check build-only", From d686fca363e40d0f34b1ea734e28094c634eafdf Mon Sep 17 00:00:00 2001 From: Jefferson Mantovani Date: Thu, 22 Jan 2026 10:53:33 -0300 Subject: [PATCH 03/17] chore: test pinata upload --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3c2ae62..646d1ac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "p2pix-front-end", - "version": "1.2.0", + "version": "1.1.0", "scripts": { "start": "vite --host=0.0.0.0 --port 3000", "build": "run-p type-check build-only", From 3c8e9c026259bacd6402ce7eeb4893f6ee442604 Mon Sep 17 00:00:00 2001 From: Jefferson Mantovani Date: Thu, 22 Jan 2026 10:58:55 -0300 Subject: [PATCH 04/17] fix: ipfs release script --- .github/workflows/ipfs-release.yml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ipfs-release.yml b/.github/workflows/ipfs-release.yml index ec101d6..dc23fd3 100644 --- a/.github/workflows/ipfs-release.yml +++ b/.github/workflows/ipfs-release.yml @@ -1,9 +1,9 @@ -name: Deploy to IPFS and Update Gist +name: Deploy to IPFS on: push: branches: - - release + - develop jobs: build-and-deploy: @@ -23,21 +23,22 @@ jobs: - name: Build SPA run: npm run build - - name: Upload build output to Pinata (API) - id: pinata_upload + - name: Authenticate Pinata CLI (write JWT to file) env: PINATA_JWT: ${{ secrets.PINATA_JWT }} run: | + echo -n "$PINATA_JWT" > ~/.pinata-files-cli + + - name: Upload build output to Pinata + id: pinata_upload + run: | + export PATH="$HOME/.local/share/pinata/:$PATH" VERSION=$(jq -r .version package.json) - zip -r dist.zip dist - RESPONSE=$(curl -sSL -X POST "https://api.pinata.cloud/pinning/pinFileToIPFS" \ - -H "Authorization: Bearer $PINATA_JWT" \ - -F "file=@dist.zip;type=application/zip" \ - -F "pinataMetadata={\"name\":\"p2pix_${VERSION}\"};type=application/json") - CID=$(echo "$RESPONSE" | jq -r .IpfsHash) + UPLOAD_JSON=$(pinata upload --name "p2pix_${VERSION}" ./dist) + CID=$(echo "$UPLOAD_JSON" | jq -r .cid) if [ -z "$CID" ] || [ "$CID" = "null" ]; then - echo "Error: Could not parse CID from Pinata API response. Aborting." - echo "Upload output: $RESPONSE" + echo "Error: Could not parse CID from Pinata upload output. Aborting." + echo "Upload output: $UPLOAD_JSON" exit 1 fi echo "CID=$CID" >> $GITHUB_OUTPUT \ No newline at end of file From 674948120c07961f765a4a3d2bc2ccfeed864728 Mon Sep 17 00:00:00 2001 From: Jefferson Mantovani Date: Thu, 22 Jan 2026 11:00:50 -0300 Subject: [PATCH 05/17] fix: remove old github workflows --- .github/workflows/cd.yml | 60 ------------------------------------- .github/workflows/ci.yml | 64 ---------------------------------------- 2 files changed, 124 deletions(-) delete mode 100644 .github/workflows/cd.yml delete mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml deleted file mode 100644 index ac38b77..0000000 --- a/.github/workflows/cd.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Deploy FrontEnd - -on: - push: - branches: [ main, develop ] - -jobs: - deploy-staging: - if: github.ref == 'refs/heads/develop' - runs-on: ubuntu-latest - env: - VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID_STAGING }} - VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID_STAGING }} - ENV_VARIABLE: ${{ secrets.ENV_STAGING }} - - steps: - - name: πŸ— Setup repo - uses: actions/checkout@v3 - - - name: πŸ— Config .env - run: echo "$ENV_VARIABLE" > .env - - - name: πŸ— Install Vercel CLI - run: npm install --global vercel@latest - - - name: πŸ— Pull staging app from vercel environment - run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_AUTH_TOKEN }} - - - name: πŸ“¦ Build staging app artifacts - run: vercel build --prod --token=${{ secrets.VERCEL_AUTH_TOKEN }} - - - name: πŸ“¦ Deploy staging app artifacts to vercel - run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_AUTH_TOKEN }} - - deploy-production: - if: github.ref == 'refs/heads/main' - runs-on: ubuntu-latest - env: - VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} - VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} - ENV_VARIABLE: ${{ secrets.ENV_PROD }} - - steps: - - name: πŸ— Setup repo - uses: actions/checkout@v3 - - - name: πŸ— Config .env - run: echo "$ENV_VARIABLE" > .env - - - name: πŸ— Install Vercel CLI - run: npm install --global vercel@latest - - - name: πŸ— Pull production vercel environment - run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_AUTH_TOKEN }} - - - name: πŸ“¦ Build app artifacts - run: vercel build --prod --token=${{ secrets.VERCEL_AUTH_TOKEN }} - - - name: πŸ“¦ Deploy app artifacts to vercel in production - run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_AUTH_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 01b910c..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,64 +0,0 @@ -name: CI script - -on: - push: - branches: [ main, develop ] - pull_request: - branches: [ main, develop ] - -jobs: - lint: - runs-on: ubuntu-latest - steps: - - name: πŸ— Setup repo - uses: actions/checkout@v3 - - - name: πŸ— Setup node - uses: actions/setup-node@v3 - with: - node-version: 16.x - cache: 'yarn' - - - name: πŸ— Install dependencies - run: yarn - - - name: πŸ“¦ Lint with eslint - run: yarn lint - - build: - runs-on: ubuntu-latest - env: - VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID_STAGING }} - VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID_STAGING }} - steps: - - name: πŸ— Setup repo - uses: actions/checkout@v3 - - - name: πŸ— Install Vercel CLI - run: npm install --global vercel@latest - - - name: πŸ— Pull staging app from vercel environment - run: vercel pull --yes --token=${{ secrets.VERCEL_AUTH_TOKEN }} - - - name: πŸ“¦ Build staging app artifacts - run: vercel build --token=${{ secrets.VERCEL_AUTH_TOKEN }} - - test-coverage: - name: SonarCloud - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: πŸ— Install dependencies - run: yarn - - - name: πŸ“¦ Test and coverage - run: yarn coverage - - - name: πŸ“¦ SonarCloud Scan - uses: SonarSource/sonarcloud-github-action@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} \ No newline at end of file From b655a3c4b68ed224657f3fccfb38ea5ab7745128 Mon Sep 17 00:00:00 2001 From: Jefferson Mantovani Date: Thu, 22 Jan 2026 11:08:18 -0300 Subject: [PATCH 06/17] chore: update app version --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index d59a94e..81b5971 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "p2pix-front-end", - "version": "0.1.0", + "version": "1.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "p2pix-front-end", - "version": "0.1.0", + "version": "1.2.0", "dependencies": { "@floating-ui/vue": "^0.2.1", "@headlessui/vue": "^1.7.3", diff --git a/package.json b/package.json index 646d1ac..3c2ae62 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "p2pix-front-end", - "version": "1.1.0", + "version": "1.2.0", "scripts": { "start": "vite --host=0.0.0.0 --port 3000", "build": "run-p type-check build-only", From 9c8ba433397718aa46ea9b000903a3cec3024fd2 Mon Sep 17 00:00:00 2001 From: Jefferson Mantovani Date: Thu, 22 Jan 2026 11:10:51 -0300 Subject: [PATCH 07/17] fix: pinata install in ipfs script --- .github/workflows/ipfs-release.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ipfs-release.yml b/.github/workflows/ipfs-release.yml index dc23fd3..3ff1948 100644 --- a/.github/workflows/ipfs-release.yml +++ b/.github/workflows/ipfs-release.yml @@ -23,6 +23,10 @@ jobs: - name: Build SPA run: npm run build + - name: Install Pinata CLI + shell: bash + run: curl -fsSL https://cli.pinata.cloud/install | bash + - name: Authenticate Pinata CLI (write JWT to file) env: PINATA_JWT: ${{ secrets.PINATA_JWT }} From 43b955296a4dbc09f5bddd7249fb35a6966c2ab3 Mon Sep 17 00:00:00 2001 From: Jefferson Mantovani Date: Thu, 22 Jan 2026 15:52:44 -0300 Subject: [PATCH 08/17] chore: add group to pinata deploy action --- .github/workflows/ipfs-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ipfs-release.yml b/.github/workflows/ipfs-release.yml index 3ff1948..478aa65 100644 --- a/.github/workflows/ipfs-release.yml +++ b/.github/workflows/ipfs-release.yml @@ -38,7 +38,7 @@ jobs: run: | export PATH="$HOME/.local/share/pinata/:$PATH" VERSION=$(jq -r .version package.json) - UPLOAD_JSON=$(pinata upload --name "p2pix_${VERSION}" ./dist) + UPLOAD_JSON=$(pinata upload --group "${{ secrets.PINATA_GROUP }}" --name "p2pix_${VERSION}" ./dist) CID=$(echo "$UPLOAD_JSON" | jq -r .cid) if [ -z "$CID" ] || [ "$CID" = "null" ]; then echo "Error: Could not parse CID from Pinata upload output. Aborting." From 6979ba04021c8cb521bd8639cdeafb2a1112bf72 Mon Sep 17 00:00:00 2001 From: hueso Date: Fri, 24 Oct 2025 20:16:01 -0300 Subject: [PATCH 09/17] fix: sellerId as string --- src/views/SellerView.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/SellerView.vue b/src/views/SellerView.vue index dd741df..825da2c 100644 --- a/src/views/SellerView.vue +++ b/src/views/SellerView.vue @@ -69,7 +69,7 @@ const sendNetwork = async () => { />
Date: Fri, 24 Oct 2025 20:33:06 -0300 Subject: [PATCH 10/17] fix: chainID as hex on web3onboard call --- src/App.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/App.vue b/src/App.vue index 3912542..763b817 100644 --- a/src/App.vue +++ b/src/App.vue @@ -15,7 +15,7 @@ const targetNetwork = ref(DEFAULT_NETWORK); const web3Onboard = init({ wallets: [injected], chains: Object.values(Networks).map((network) => ({ - id: network.id, + id: `0x${network.id.toString(16)}`, token: network.nativeCurrency.symbol, label: network.name, rpcUrl: network.rpcUrls.default.http[0], From f31fa158872d71730f283328f2b8dcfced6bafc5 Mon Sep 17 00:00:00 2001 From: hueso Date: Fri, 24 Oct 2025 20:34:08 -0300 Subject: [PATCH 11/17] add basic error handling on subgraph queries --- src/blockchain/events.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/blockchain/events.ts b/src/blockchain/events.ts index c5c910a..1886533 100644 --- a/src/blockchain/events.ts +++ b/src/blockchain/events.ts @@ -94,6 +94,10 @@ const getValidDeposits = async ( // remove doubles from sellers list const depositData = await depositLogs.json(); + if (!depositData.data) { + console.error("Error fetching deposit logs"); + return []; + } const depositAddeds = depositData.data.depositAddeds; const uniqueSellers = depositAddeds.reduce( (acc: Record, deposit: any) => { From 6cfe47817708c157b5dd638d14bab2da08e2f96f Mon Sep 17 00:00:00 2001 From: hueso Date: Thu, 5 Mar 2026 21:58:59 -0300 Subject: [PATCH 12/17] manually trigger IPFS action --- .github/workflows/ipfs-release.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ipfs-release.yml b/.github/workflows/ipfs-release.yml index 478aa65..f9b9ce6 100644 --- a/.github/workflows/ipfs-release.yml +++ b/.github/workflows/ipfs-release.yml @@ -1,9 +1,10 @@ name: Deploy to IPFS on: - push: - branches: - - develop + push: + branches: + - develop + workflow_dispatch: jobs: build-and-deploy: From 7cda8d5573928239d0af2c6d951d697b2fe47675 Mon Sep 17 00:00:00 2001 From: hueso Date: Thu, 5 Mar 2026 21:59:10 -0300 Subject: [PATCH 13/17] import contracts from submodule --- .gitmodules | 3 +++ wagmi.config.ts | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 .gitmodules diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..c122daf --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "p2pix-smart-contracts"] + path = p2pix-smart-contracts + url = https://git.p2pix.co/doiim/p2pix-smart-contracts diff --git a/wagmi.config.ts b/wagmi.config.ts index e12d046..0a19f61 100644 --- a/wagmi.config.ts +++ b/wagmi.config.ts @@ -6,6 +6,6 @@ export default defineConfig({ contracts: [], plugins: [ hardhat({ - project: '../p2pix-smart-contracts', + project: 'p2pix-smart-contracts', }),], }) From 95c3692bcb99123e626912fb5b41a523b5209d45 Mon Sep 17 00:00:00 2001 From: hueso Date: Thu, 5 Mar 2026 22:19:27 -0300 Subject: [PATCH 14/17] =?UTF-8?q?pi=C3=B1ata=20soft=20fail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ipfs-release.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ipfs-release.yml b/.github/workflows/ipfs-release.yml index f9b9ce6..2aec56e 100644 --- a/.github/workflows/ipfs-release.yml +++ b/.github/workflows/ipfs-release.yml @@ -25,16 +25,19 @@ jobs: run: npm run build - name: Install Pinata CLI + if: secrets.PINATA_JWT != '' shell: bash run: curl -fsSL https://cli.pinata.cloud/install | bash - name: Authenticate Pinata CLI (write JWT to file) + if: secrets.PINATA_JWT != '' env: PINATA_JWT: ${{ secrets.PINATA_JWT }} run: | echo -n "$PINATA_JWT" > ~/.pinata-files-cli - name: Upload build output to Pinata + if: secrets.PINATA_JWT != '' id: pinata_upload run: | export PATH="$HOME/.local/share/pinata/:$PATH" From ea5773c7d0a650fec52f09a1123ac896c22f668d Mon Sep 17 00:00:00 2001 From: hueso Date: Mon, 2 Mar 2026 02:12:26 -0300 Subject: [PATCH 15/17] CI: build-only (no type-check) --- .github/workflows/ipfs-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ipfs-release.yml b/.github/workflows/ipfs-release.yml index 2aec56e..2b89d28 100644 --- a/.github/workflows/ipfs-release.yml +++ b/.github/workflows/ipfs-release.yml @@ -22,7 +22,7 @@ jobs: run: npm ci - name: Build SPA - run: npm run build + run: npm run build-only - name: Install Pinata CLI if: secrets.PINATA_JWT != '' From abeef0bd8533ef318dded719a43048ec2aa4361d Mon Sep 17 00:00:00 2001 From: hueso Date: Thu, 5 Mar 2026 22:30:50 -0300 Subject: [PATCH 16/17] deploy to node --- .github/workflows/ipfs-release.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/ipfs-release.yml b/.github/workflows/ipfs-release.yml index 2b89d28..cdb2448 100644 --- a/.github/workflows/ipfs-release.yml +++ b/.github/workflows/ipfs-release.yml @@ -24,6 +24,26 @@ jobs: - name: Build SPA run: npm run build-only + - name: Deploy via RSYNC + uses: up9cloud/action-rsync@master + env: + USER: ${{secrets.SSH_USER}} + HOST: ${{secrets.SSH_HOST}} + KEY: ${{secrets.SSH_KEY}} + SOURCE: dist/ + TARGET: / + + - name: Deploy to IPFS + uses: ipshipyard/ipfs-deploy-action@v1 + id: deploy + with: + path-to-deploy: dist + set-github-status: false + set-pr-comment: false + kubo-api-url: ${{ secrets.KUBO_API_URL }} + kubo-api-auth: ${{ secrets.KUBO_API_AUTH }} + upload-car-artifact: false + - name: Install Pinata CLI if: secrets.PINATA_JWT != '' shell: bash From ebe03eb439acddcbbc2669e4b2485b31f8815782 Mon Sep 17 00:00:00 2001 From: hueso Date: Fri, 13 Mar 2026 01:08:54 -0300 Subject: [PATCH 17/17] deploy to branch --- .github/workflows/ipfs-release.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/ipfs-release.yml b/.github/workflows/ipfs-release.yml index cdb2448..fd65632 100644 --- a/.github/workflows/ipfs-release.yml +++ b/.github/workflows/ipfs-release.yml @@ -2,8 +2,6 @@ name: Deploy to IPFS on: push: - branches: - - develop workflow_dispatch: jobs: @@ -31,7 +29,7 @@ jobs: HOST: ${{secrets.SSH_HOST}} KEY: ${{secrets.SSH_KEY}} SOURCE: dist/ - TARGET: / + TARGET: ${{ gitea.ref_name }} - name: Deploy to IPFS uses: ipshipyard/ipfs-deploy-action@v1