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}