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