Production IPFS Deployment #55
This file contains hidden or 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: Production IPFS Deployment | |
| on: | |
| workflow_dispatch: | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-22.04 | |
| environment: production-ipfs | |
| strategy: | |
| matrix: | |
| node-version: [22.16.0] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Configure AWS CLI | |
| run: | | |
| aws configure set aws_access_key_id "${{ secrets.FILEBASE_ACCESS_KEY }}" | |
| aws configure set aws_secret_access_key "${{ secrets.FILEBASE_SECRET_KEY }}" | |
| aws configure set default.region us-east-1 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: "npm" | |
| - name: Create env file | |
| run: | | |
| echo VITE_COIN_GECKO_API_URL=${{ vars.VITE_COIN_GECKO_API_URL }} > .env.production | |
| echo VITE_TRM_LABS_API_URL=${{ vars.VITE_TRM_LABS_API_URL }} >> .env.production | |
| echo VITE_BASE_WALLET_PROJECT_ID=${{ vars.VITE_BASE_WALLET_PROJECT_ID }} >> .env.production | |
| echo VITE_LIFI_INTEGRATOR=${{ vars.VITE_LIFI_INTEGRATOR }} >> .env.production | |
| echo VITE_BASE_RPC_FREE_1=${{ vars.VITE_BASE_RPC_FREE_1 }} >> .env.production | |
| echo VITE_BASE_MAIN_RPC_URL=${{ vars.VITE_BASE_MAIN_RPC_URL }} >> .env.production | |
| echo VITE_BASE_RPC_PAID_WS_2=${{ vars.VITE_BASE_RPC_PAID_WS_2 }} >> .env.production | |
| echo VITE_SENTRY_AUTH_TOKEN=${{ vars.VITE_SENTRY_AUTH_TOKEN }} >> .env.production | |
| echo VITE_STYLE_VERSION=${{ vars.VITE_STYLE_VERSION }} >> .env.production | |
| echo VITE_USE_TENDERLY_SIMULATION=${{ vars.VITE_USE_TENDERLY_SIMULATION }} >> .env.production | |
| echo VITE_ALCHEMY_SIMULATION_RPC_URL=${{ vars.VITE_ALCHEMY_SIMULATION_RPC_URL }} >> .env.production | |
| echo VITE_EXTENSIVE_OPERATIONS_RPC_URL=${{ vars.VITE_EXTENSIVE_OPERATIONS_RPC_URL }} >> .env.production | |
| echo VITE_STAKING_FEATURE=${{ vars.VITE_STAKING_FEATURE }} >> .env.production | |
| echo VITE_FUUL_ENABLE=${{ vars.VITE_FUUL_ENABLE }} >> .env.production | |
| echo VITE_FUUL_API_KEY=${{ vars.VITE_FUUL_API_KEY }} >> .env.production | |
| echo VITE_LEVERAGE_TOKENS_FEATURE=${{ vars.VITE_LEVERAGE_TOKENS_FEATURE }} >> .env.production | |
| echo VITE_CLIENT_METADATA_API=${{ vars.VITE_CLIENT_METADATA_API }} >> .env.production | |
| echo VITE_LEVERAGE_TOKENS_SUBGRAPH=${{ vars.VITE_LEVERAGE_TOKENS_SUBGRAPH }} >> .env.production | |
| echo VITE_LEVERAGE_TOKENS_SUBGRAPH_API_KEY=${{ vars.VITE_LEVERAGE_TOKENS_SUBGRAPH_API_KEY }} >> .env.production | |
| echo VITE_FUUL_DEPLOYED_ADDRESS=${{ vars.VITE_FUUL_DEPLOYED_ADDRESS }} >> .env.production | |
| cat .env.production | |
| - run: npm ci | |
| - run: npm run build --if-present | |
| - name: Rename dist folder | |
| run: | | |
| TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S) | |
| mv dist "${TIMESTAMP}_${GITHUB_SHA}" | |
| echo "APP_BUILD_NAME=${TIMESTAMP}_${GITHUB_SHA}" >> "$GITHUB_ENV" | |
| - name: Create IPFS .car | |
| run: | | |
| npm i -g [email protected] | |
| ipfs-car pack ${APP_BUILD_NAME} --output ${APP_BUILD_NAME}.car | |
| ipfs-car ls ${APP_BUILD_NAME}.car | |
| - name: Upload to IPFS | |
| env: | |
| FILEBASE_ACCESS_KEY: "${{ secrets.FILEBASE_ACCESS_KEY }}" | |
| FILEBASE_SECRET_KEY: "${{ secrets.FILEBASE_SECRET_KEY }}" | |
| run: | | |
| aws --endpoint https://s3.filebase.com/ s3 cp ${APP_BUILD_NAME}.car s3://seamless-interface/prod/${APP_BUILD_NAME} --debug --metadata 'import=car' |