120 lines
4.5 KiB
YAML
120 lines
4.5 KiB
YAML
name: After Release
|
|
|
|
on:
|
|
release:
|
|
types: [published]
|
|
|
|
jobs:
|
|
after-release:
|
|
runs-on: ubuntu-22.04
|
|
timeout-minutes: 45
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v2
|
|
|
|
- name: Log in to the Container registry (ghcr)
|
|
uses: docker/login-action@v2
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Log in to the Container registry (docker hub)
|
|
uses: docker/login-action@v2
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
|
- name: Wait for publish to complete
|
|
uses: lewagon/wait-on-check-action@v1.3.1
|
|
with:
|
|
ref: ${{ github.event.release.tag_name }}
|
|
check-name: '(CD) publish dist / trading'
|
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
wait-interval: 10
|
|
|
|
- name: resolve ipfs hashes for release
|
|
run: |
|
|
echo "Name: ${{ github.event.release.name }}"
|
|
echo "Description: ${{ github.event.release.body }}"
|
|
echo "Tag: ${{ github.event.release.tag_name }}"
|
|
docker run --rm vegaprotocol/trading:mainnet cat /ipfs-hash > ipfs-hash
|
|
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
|
|
echo IPFS_V0=$(cat ipfs-hash) >> $GITHUB_ENV
|
|
echo IPFS_V1=$(ipfs cid format -v 1 -b base32 $(cat ipfs-hash)) >> $GITHUB_ENV
|
|
|
|
- name: Edit Release
|
|
uses: irongut/EditRelease@v1.2.0
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
id: ${{ github.event.release.id }}
|
|
body: |
|
|
|
|
___
|
|
|
|
# Deployments
|
|
* https://explorer.vega.xyz
|
|
* https://governance.vega.xyz
|
|
|
|
# IPFS releases
|
|
The IPFS hash of this release of the Trading app is:
|
|
|
|
CIDv0: ${{ env.IPFS_V0 }}
|
|
CIDv1: ${{ env.IPFS_V1 }}
|
|
|
|
You can always access the latest IPFS release by visiting [console.vega.xyz](https://console.vega.xyz).
|
|
|
|
You can also access Trading directly from an IPFS gateway.
|
|
BEWARE: The Trading 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](https://ipfs.github.io/public-gateway-checker/).
|
|
|
|
Your settings are not remembered across different URLs.
|
|
|
|
IPFS gateways:
|
|
|
|
https://${{ env.IPFS_V1 }}.ipfs.dweb.link/
|
|
https://${{ env.IPFS_V1 }}.ipfs.cf-ipfs.com/
|
|
ipfs://${{ env.IPFS_V0 }}/
|
|
|
|
- name: Ensure 'Released' label exists
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
REPO="${{ github.repository }}"
|
|
LABEL_EXIST=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \
|
|
-H "Accept: application/vnd.github.v3+json" \
|
|
"https://api.github.com/repos/$REPO/labels/Released")
|
|
if [[ "$LABEL_EXIST" == *"Not Found"* ]]; then
|
|
curl -s -H "Authorization: token $GITHUB_TOKEN" \
|
|
-H "Accept: application/vnd.github.v3+json" \
|
|
-X POST "https://api.github.com/repos/$REPO/labels" \
|
|
-d '{"name": "Released", "color": "FFFFFF"}'
|
|
fi
|
|
|
|
- name: Extract issues from release notes
|
|
id: extract-issues
|
|
run: |
|
|
ISSUES=$(echo "${{ github.event.release.body }}" | grep -o -E '#[0-9]+' | tr -d '#' | jq -R . | jq -cs .)
|
|
echo "Issues to label: $ISSUES"
|
|
echo "::set-output name=issue_numbers::$ISSUES"
|
|
|
|
- name: Add 'Released' label to issues
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
ISSUE_NUMBERS="${{ steps.extract-issues.outputs.issue_numbers }}"
|
|
REPO="${{ github.repository }}"
|
|
for ISSUE in $(echo "$ISSUE_NUMBERS" | jq -r '.[]'); do
|
|
curl -s -H "Authorization: token $GITHUB_TOKEN" \
|
|
-H "Accept: application/vnd.github.v3+json" \
|
|
-X POST "https://api.github.com/repos/$REPO/issues/$ISSUE/labels" \
|
|
-d '{"labels": ["Released"]}'
|
|
done
|