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 diff --git a/.github/workflows/ipfs-release.yml b/.github/workflows/ipfs-release.yml new file mode 100644 index 0000000..dc23fd3 --- /dev/null +++ b/.github/workflows/ipfs-release.yml @@ -0,0 +1,44 @@ +name: Deploy to IPFS + +on: + push: + branches: + - develop + +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: 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) + 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 upload output. Aborting." + echo "Upload output: $UPLOAD_JSON" + exit 1 + fi + echo "CID=$CID" >> $GITHUB_OUTPUT \ No newline at end of file