Skip to content

KyberSwap Interface Release #720

KyberSwap Interface Release

KyberSwap Interface Release #720

Workflow file for this run

name: 'KyberSwap Interface Release'
permissions: write-all
on:
workflow_dispatch:
inputs:
version:
description: 'Release version'
type: string
required: true
jobs:
prepare:
runs-on: ubuntu-20.04
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-20.04
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v1
with:
node-version: 20.9.0
registry-url: 'https://npm.pkg.github.com'
scope: '@kybernetwork'
- name: Restore node_modules
uses: actions/cache@v2
with:
path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
- name: Install dependences
uses: bahmutov/npm-install@HEAD
env:
NODE_AUTH_TOKEN: ${{ secrets.GH_PAT }} ### authen npm
- name: Run Lint
run: yarn lint --quiet
- name: Yarn Build
env:
CI: false
VITE_TAG: ${{ github.event.inputs.version }}
NODE_OPTIONS: '--max_old_space_size=4096'
run: yarn build-prod
- name: Save build
uses: actions/upload-artifact@v2
with:
name: build-production
path: build
if-no-files-found: error
docker:
needs:
- prepare
- build
env:
SERVICE: kyberswap-interface
VERSION_TAG: ${{ needs.prepare.outputs.version_tag }}
BUILD_DATE: ${{ needs.prepare.outputs.build_date }}
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Restore build
uses: actions/download-artifact@v2
with:
name: build-production
path: build
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@master
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@master
- name: Gcloud Auth
uses: google-github-actions/auth@v0
with:
credentials_json: '${{ secrets.GCR_CREDENTIALS }}'
- name: Setup Gcloud SDK
uses: google-github-actions/setup-gcloud@v0
- name: Configure docker
run: gcloud auth configure-docker
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-${{ env.SERVICE }}-buildx
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
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
- docker
runs-on: ubuntu-20.04
env:
VERSION_TAG: ${{ needs.prepare.outputs.version_tag }}
steps:
- name: Checkout
uses: actions/checkout@v2
- 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@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag_name: ${{ env.VERSION_TAG }}
prerelease: false
name: 'KyberSwap Interface - ${{ env.VERSION_TAG }}'
generate_release_notes: true