Permalink
Cannot retrieve contributors at this time
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
122 lines (109 sloc)
4.48 KB
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: Release | |
| on: | |
| schedule: | |
| - cron: '0 12 * * 1-4' # every day 12:00 UTC Monday-Thursday | |
| # manual trigger | |
| workflow_dispatch: | |
| jobs: | |
| wait-on-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - id: unit-tests | |
| uses: fountainhead/action-wait-for-check@v1.0.0 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| checkName: unit-tests | |
| - id: cypress-tests | |
| uses: fountainhead/action-wait-for-check@v1.0.0 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| checkName: cypress-tests | |
| - if: steps.unit-tests.outputs.conclusion != 'success' || steps.cypress-tests.outputs.conclusion != 'success' | |
| run: exit 1 | |
| tag: | |
| needs: wait-on-tests | |
| runs-on: ubuntu-latest | |
| outputs: | |
| new_tag: ${{ steps.github-tag-action.outputs.new_tag }} | |
| changelog: ${{ steps.github-tag-action.outputs.changelog }} | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Bump and tag | |
| id: github-tag-action | |
| uses: mathieudutour/github-tag-action@v6.0 | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| release_branches: .* | |
| default_bump: patch | |
| release: | |
| needs: tag | |
| if: ${{ needs.tag.outputs.new_tag != null }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - uses: ./.github/actions/setup | |
| - run: yarn prepare | |
| - run: yarn build | |
| - name: Pin to IPFS | |
| id: pinata | |
| uses: anantaramdas/ipfs-pinata-deploy-action@39bbda1ce1fe24c69c6f57861b8038278d53688d | |
| with: | |
| pin-name: Uniswap ${{ needs.tag.outputs.new_tag }} | |
| path: './build' | |
| pinata-api-key: ${{ secrets.PINATA_API_KEY }} | |
| pinata-secret-api-key: ${{ secrets.PINATA_API_SECRET_KEY }} | |
| - name: Pin to Crust | |
| uses: crustio/ipfs-crust-action@v2.0.3 | |
| continue-on-error: true | |
| timeout-minutes: 2 | |
| with: | |
| cid: ${{ steps.upload.outputs.hash }} | |
| seeds: ${{ secrets.CRUST_SEEDS }} | |
| - name: Convert CIDv0 to CIDv1 | |
| id: convert-cidv0 | |
| uses: uniswap/convert-cidv0-cidv1@v1.0.0 | |
| with: | |
| cidv0: ${{ steps.pinata.outputs.hash }} | |
| - uses: actions/cache@v3 | |
| id: cypress-cache | |
| with: | |
| path: /home/runner/.cache/Cypress | |
| key: ${{ runner.os }}-cypress-${{ hashFiles('node_modules/cypress') }} | |
| - if: steps.cypress-cache.outputs.cache-hit != 'true' | |
| run: yarn cypress install | |
| - uses: cypress-io/github-action@v4 | |
| with: | |
| install: false | |
| browser: chrome | |
| config-file: cypress.release.config.ts | |
| config: baseUrl=https://cloudflare-ipfs.com/ipfs/${{ steps.pinata.outputs.hash }} | |
| - name: Update DNS with new IPFS hash | |
| env: | |
| CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }} | |
| RECORD_DOMAIN: 'uniswap.org' | |
| RECORD_NAME: '_dnslink.app' | |
| CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE_ID }} | |
| uses: textileio/cloudflare-update-dnslink@0fe7b7a1ffc865db3a4da9773f0f987447ad5848 | |
| with: | |
| cid: ${{ steps.pinata.outputs.hash }} | |
| - name: Release | |
| uses: actions/create-release@v1.1.0 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| tag_name: ${{ needs.tag.outputs.new_tag }} | |
| release_name: Release ${{ needs.tag.outputs.new_tag }} | |
| body: | | |
| IPFS hash of the deployment: | |
| - CIDv0: `${{ steps.pinata.outputs.hash }}` | |
| - CIDv1: `${{ steps.convert-cidv0.outputs.cidv1 }}` | |
| The latest release is always accessible via our alias to the Cloudflare IPFS gateway at [app.uniswap.org](https://app.uniswap.org). | |
| You can also access the Uniswap Interface directly from an IPFS gateway. | |
| **BEWARE**: The Uniswap interface uses [`localStorage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) to remember your settings, such as which tokens you have imported. | |
| **You should always use an IPFS gateway that enforces origin separation**, or our alias to the latest release at [app.uniswap.org](https://app.uniswap.org). | |
| Your Uniswap settings are never remembered across different URLs. | |
| IPFS gateways: | |
| - https://${{ steps.convert-cidv0.outputs.cidv1 }}.ipfs.dweb.link/ | |
| - https://${{ steps.convert-cidv0.outputs.cidv1 }}.ipfs.cf-ipfs.com/ | |
| - [ipfs://${{ steps.upload.outputs.hash }}/](ipfs://${{ steps.pinata.outputs.hash }}/) | |
| ${{ needs.tag.outputs.changelog }} |