78 lines
3.0 KiB
YAML
78 lines
3.0 KiB
YAML
|
name: 'Rollback console'
|
||
|
|
||
|
on:
|
||
|
workflow_dispatch:
|
||
|
inputs:
|
||
|
version:
|
||
|
description: 'Version that should be set on rollback'
|
||
|
required: true
|
||
|
type: string
|
||
|
|
||
|
jobs:
|
||
|
rollback:
|
||
|
runs-on: ubuntu-22.04
|
||
|
timeout-minutes: 10
|
||
|
steps:
|
||
|
- name: Set up Docker Buildx
|
||
|
uses: docker/setup-buildx-action@v2
|
||
|
|
||
|
- name: Log in to the Container registry (docker hub)
|
||
|
uses: docker/login-action@v2
|
||
|
with:
|
||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||
|
|
||
|
- name: Retag mainnet
|
||
|
run: |
|
||
|
docker pull vegaprotocol/trading:${{ inputs.version }}
|
||
|
docker tag vegaprotocol/trading:${{ inputs.version }} vegaprotocol/trading:mainnet
|
||
|
docker push vegaprotocol/trading:mainnet
|
||
|
docker run --rm vegaprotocol/trading:mainnet cat /ipfs-hash > ipfs-hash
|
||
|
|
||
|
- name: Trigger fleek deployment
|
||
|
run: |
|
||
|
# display info about app
|
||
|
curl -H "Authorization: ${{ secrets.FLEEK_API_KEY }}" \
|
||
|
-H "Content-Type: application/json" \
|
||
|
-d '{"query": "query{getSiteById(siteId:\"f8f2e051-f18e-49e6-b876-0a39369dc0d8\"){id latestDeploy{id status}}}"}' \
|
||
|
https://api.fleek.co/graphql
|
||
|
|
||
|
# trigger new deployment as base image is always set to vegaprotocol/trading:mainnet
|
||
|
curl -H "Authorization: ${{ secrets.FLEEK_API_KEY }}" \
|
||
|
-H "Content-Type: application/json" \
|
||
|
-d '{"query": "mutation{triggerDeploy(siteId:\"f8f2e051-f18e-49e6-b876-0a39369dc0d8\"){id status}}"}' \
|
||
|
https://api.fleek.co/graphql
|
||
|
|
||
|
- name: Update vega.trading DNS to redirect to the new console
|
||
|
run: |
|
||
|
curl -L https://dist.ipfs.tech/kubo/v0.20.0/kubo_v0.20.0_linux-amd64.tar.gz -o kubo.tgz
|
||
|
tar -xzf kubo.tgz
|
||
|
export PATH="$PATH:$PWD/kubo"
|
||
|
which ipfs
|
||
|
new_hash=$(cat ipfs-hash)
|
||
|
new_cid=$(ipfs cid format -v 1 -b base32 $new_hash)
|
||
|
|
||
|
# Generate console URL
|
||
|
new_console_url_type=ipfs
|
||
|
# new_console_url_type=ipns
|
||
|
new_console_url_domain=cf-ipfs.com
|
||
|
# new_console_url_domain=dweb.link
|
||
|
new_console_url="https://${new_cid}.${new_console_url_type}.${new_console_url_domain}/"
|
||
|
echo "new_console_url=${new_console_url}"
|
||
|
|
||
|
# Update record in DNSimple
|
||
|
# docs: https://developer.dnsimple.com/v2/zones/records/#updateZoneRecord
|
||
|
dnsimple_account_id=84895
|
||
|
dnsimple_zone_name=vega.trading
|
||
|
dnsimple_record_id=44409591
|
||
|
# see: https://dnsimple.com/a/84895/domains/vega.trading/records/44409591/edit
|
||
|
|
||
|
curl -H 'Authorization: Bearer ${{ secrets.DNSIMPLE_API_TOKEN }}' \
|
||
|
-H 'Accept: application/json' \
|
||
|
-H 'Content-Type: application/json' \
|
||
|
-X PATCH \
|
||
|
-d "{
|
||
|
\"content\": \"${new_console_url}\"
|
||
|
}" \
|
||
|
https://api.dnsimple.com/v2/${dnsimple_account_id}/zones/${dnsimple_zone_name}/records/${dnsimple_record_id}
|