2020-05-21 22:38:30 +03:00
name : Release
2020-05-21 06:31:05 +03:00
on :
2022-07-14 19:19:23 +03:00
schedule :
- cron : '0 12 * * 1-4' # every day 12:00 UTC Monday-Thursday
2020-07-09 16:57:17 +03:00
# manual trigger
2020-09-24 19:31:18 +03:00
workflow_dispatch :
2020-05-26 18:01:05 +03:00
2020-05-21 06:31:05 +03:00
jobs :
2022-07-11 17:42:52 +03:00
wait-on-tests :
2022-07-07 21:09:47 +03:00
runs-on : ubuntu-latest
steps :
2022-07-11 17:42:52 +03:00
- id : unit-tests
uses : fountainhead/action-wait-for-check@v1.0.0
2022-07-07 21:09:47 +03:00
with :
2022-07-11 17:42:52 +03:00
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
2022-07-02 01:05:37 +03:00
tag :
2022-07-11 17:42:52 +03:00
needs : wait-on-tests
2020-05-21 06:31:05 +03:00
runs-on : ubuntu-latest
2020-05-26 18:01:05 +03:00
outputs :
2022-07-05 18:52:54 +03:00
new_tag : ${{ steps.github-tag-action.outputs.new_tag }}
changelog : ${{ steps.github-tag-action.outputs.changelog }}
2020-05-21 06:31:05 +03:00
steps :
2022-06-17 00:42:18 +03:00
- uses : actions/checkout@v3
2022-07-02 01:05:37 +03:00
- name : Bump and tag
id : github-tag-action
uses : mathieudutour/github-tag-action@v6.0
2020-05-21 06:31:05 +03:00
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
release_branches : .*
2022-07-02 01:05:37 +03:00
default_bump : patch
2020-05-21 21:30:31 +03:00
2022-07-02 01:05:37 +03:00
release :
needs : tag
if : ${{ needs.tag.outputs.new_tag != null }}
2020-05-26 18:01:05 +03:00
runs-on : ubuntu-latest
steps :
2022-06-17 00:42:18 +03:00
- uses : actions/checkout@v3
2022-07-02 01:05:37 +03:00
- uses : ./.github/actions/setup
2022-06-17 00:42:18 +03:00
- run : yarn prepare
- run : yarn build
2020-05-21 21:30:31 +03:00
2020-05-21 21:08:34 +03:00
- name : Pin to IPFS
2022-07-02 01:05:37 +03:00
id : pinata
2020-07-10 22:25:15 +03:00
uses : anantaramdas/ipfs-pinata-deploy-action@39bbda1ce1fe24c69c6f57861b8038278d53688d
2020-05-21 06:31:05 +03:00
with :
2022-07-02 01:05:37 +03:00
pin-name : Uniswap ${{ needs.tag.outputs.new_tag }}
2020-05-21 21:08:34 +03:00
path : './build'
pinata-api-key : ${{ secrets.PINATA_API_KEY }}
pinata-secret-api-key : ${{ secrets.PINATA_API_SECRET_KEY }}
2020-05-21 21:30:31 +03:00
2021-03-26 18:03:25 +03:00
- name : Pin to Crust
2021-09-07 17:37:07 +03:00
uses : crustio/ipfs-crust-action@v2.0.3
2021-03-26 18:03:25 +03:00
continue-on-error : true
timeout-minutes : 2
with :
cid : ${{ steps.upload.outputs.hash }}
seeds : ${{ secrets.CRUST_SEEDS }}
2020-05-26 20:01:38 +03:00
- name : Convert CIDv0 to CIDv1
2022-07-02 01:05:37 +03:00
id : convert-cidv0
2020-05-26 20:01:38 +03:00
uses : uniswap/convert-cidv0-cidv1@v1.0.0
with :
2022-07-02 01:05:37 +03:00
cidv0 : ${{ steps.pinata.outputs.hash }}
2022-07-14 04:24:58 +03:00
2022-07-11 19:55:03 +03:00
- 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 }}
2020-05-26 20:01:38 +03:00
2020-07-27 20:33:31 +03:00
- 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 :
2022-07-02 01:05:37 +03:00
cid : ${{ steps.pinata.outputs.hash }}
2020-05-22 15:07:49 +03:00
2022-07-02 01:05:37 +03:00
- name : Release
2020-05-21 06:31:05 +03:00
uses : actions/create-release@v1.1.0
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
with :
2022-07-02 01:05:37 +03:00
tag_name : ${{ needs.tag.outputs.new_tag }}
release_name : Release ${{ needs.tag.outputs.new_tag }}
2020-05-21 06:31:05 +03:00
body : |
2020-06-10 20:55:35 +03:00
IPFS hash of the deployment :
2022-07-02 01:05:37 +03:00
- CIDv0 : `${{ steps.pinata.outputs.hash }}`
- CIDv1 : `${{ steps.convert-cidv0.outputs.cidv1 }}`
2020-05-21 06:31:05 +03:00
2020-06-25 03:33:26 +03:00
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.
2021-05-13 20:17:34 +03:00
**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.
2020-05-23 23:07:23 +03:00
2021-05-13 20:17:34 +03:00
IPFS gateways :
2022-07-02 01:05:37 +03:00
- 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 }}/)
2020-05-23 23:07:23 +03:00
2022-07-02 01:05:37 +03:00
${{ needs.tag.outputs.changelog }}