Skip to content

KyberSwap Interface Release #158

KyberSwap Interface Release

KyberSwap Interface Release #158

name: "KyberSwap Interface Release"
on:
workflow_dispatch:
inputs:
version:
description: "Release version"
type: string
required: true
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
version_tag: ${{ steps.version_tag.outputs.value }}
build_date: ${{ steps.build_date.outputs.value }}
steps:
- name: Format version tag
shell: bash
id: version_tag
env:
INPUT_TAG: ${{ github.event.inputs.version }}
run: |
TAG=${INPUT_TAG#v}
echo "::set-output name=value::v$TAG"
- name: Build date
shell: bash
id: build_date
run: echo "::set-output name=value::$(date +%FT%T%z)"
build:
needs:
- prepare
runs-on: ubuntu-latest
env:
SERVICE: kyberswap-interface
VERSION_TAG: ${{ needs.prepare.outputs.version_tag }}
BUILD_DATE: ${{ needs.prepare.outputs.build_date }}
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- run: |
echo "@kybernetwork:registry=https://npm.pkg.github.com" >> .npmrc
echo "//npm.pkg.github.com/:_authToken=${{ secrets.GH_PAT }}" >> .npmrc
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 8.9.2
run_install: false
- name: Set up Node.js
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
with:
node-version: 21.0.0
registry-url: "https://npm.pkg.github.com"
scope: "@kybernetwork"
token: ${{ secrets.GH_PAT }}
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Build packages
run: |
pnpm build-package
- name: Run lint
run: pnpm lint && pnpm type-check
- name: Build interface
env:
CI: false
VITE_TAG: ${{ github.event.inputs.version }}
NODE_OPTIONS: "--max_old_space_size=4096"
working-directory: apps/kyberswap-interface
run: pnpm build-prod
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@master
- name: Gcloud Auth
uses: google-github-actions/auth@v1
with:
credentials_json: "${{ secrets.GCR_CREDENTIALS }}"
- name: Setup Gcloud SDK
uses: google-github-actions/setup-gcloud@v1
- name: Configure docker
run: gcloud auth configure-docker
- name: Cache Docker layers
uses: actions/cache@v4
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-${{ env.SERVICE }}-buildx
- name: Build and push
uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991 #v6.13.0
with:
context: apps/kyberswap-interface
push: true
labels: |
kyber.network.schema-version=1.0
kyber.network.vcs-ref=${{ github.sha }}
kyber.network.version=${{ env.VERSION_TAG }}
kyber.network.name=${{ env.SERVICE }}
tags: |
asia.gcr.io/kyber-operation/core/${{ env.SERVICE }}:latest
asia.gcr.io/kyber-operation/core/${{ env.SERVICE }}:${{ env.VERSION_TAG }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
- name: Move Docker cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
release:
needs:
- prepare
- build
runs-on: ubuntu-latest
env:
VERSION_TAG: ${{ needs.prepare.outputs.version_tag }}
permissions:
contents: write
packages: write
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- name: Setup Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"
- name: Create tag
run: |
git tag -d "$VERSION_TAG" 2> /dev/null || echo "Release tag '$VERSION_TAG' does NOT exist"
git tag --annotate --message "KyberSwap Interface - $VERSION_TAG" "$VERSION_TAG"
git push origin "refs/tags/$VERSION_TAG"
- name: Create release
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2.2.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag_name: ${{ env.VERSION_TAG }}
prerelease: false
name: "KyberSwap Interface - ${{ env.VERSION_TAG }}"
generate_release_notes: true