From fa2a4e5fa086db880c822c43094cf8fee9157e1c Mon Sep 17 00:00:00 2001 From: jinoosss <112360739+jinoosss@users.noreply.github.com> Date: Fri, 10 Mar 2023 11:43:54 +0900 Subject: [PATCH] dev: [GSFE-11] Apply CI/CD (#13) --- .circleci/config.yml | 106 ------------------ .circleci/template/slack-build-fail.json | 74 ------------ .circleci/template/slack-build-finish.json | 74 ------------ .circleci/template/slack-build-start.json | 73 ------------ .circleci/template/slack-deploy-fail.json | 64 ----------- .circleci/template/slack-deploy-success.json | 74 ------------ .github/actions/setup/action.yml | 23 ++++ .github/templates/slack-build-fail.json | 46 ++++++++ .github/templates/slack-build-start.json | 45 ++++++++ .github/templates/slack-deploy-fail.json | 64 +++++++++++ .github/templates/slack-deploy-success.json | 64 +++++++++++ .github/workflows/build-deploy.yml | 95 ++++++++++++++++ .github/workflows/test.yml | 23 ++++ .pnp.cjs | 22 +--- .../axios-npm-1.3.1-744f7a6778-2c83346b81.zip | Bin 466543 -> 0 bytes Dockerfile | 18 ++- packages/web/jest.config.js | 11 +- .../mock-storage-client.spec.ts | 2 - .../clients/wallet-client/adena-client.ts | 2 +- .../web/src/common/hooks/use-notification.tsx | 18 ++- packages/web/src/common/hooks/use-wallet.tsx | 17 ++- .../web/src/common/utils/number-util.spec.ts | 2 - .../account-notification-repository.spec.ts | 13 ++- .../account/account-repository.spec.ts | 13 ++- .../repositories/pool/pool-repository.spec.ts | 2 - .../staking/staking-repository.spec.ts | 5 - .../repositories/swap/swap-repository.spec.ts | 5 - .../token/token-repository.spec.ts | 2 - .../services/account/account-service.spec.ts | 2 - .../liquidity-reward-service.spec.ts | 2 - .../liquidity/liquidity-service.spec.ts | 2 - .../src/services/swap/swap-service.spec.ts | 2 - .../src/services/token/token-service.spec.ts | 2 - yarn.lock | 13 +-- 34 files changed, 432 insertions(+), 548 deletions(-) delete mode 100644 .circleci/config.yml delete mode 100644 .circleci/template/slack-build-fail.json delete mode 100644 .circleci/template/slack-build-finish.json delete mode 100644 .circleci/template/slack-build-start.json delete mode 100644 .circleci/template/slack-deploy-fail.json delete mode 100644 .circleci/template/slack-deploy-success.json create mode 100644 .github/actions/setup/action.yml create mode 100644 .github/templates/slack-build-fail.json create mode 100644 .github/templates/slack-build-start.json create mode 100644 .github/templates/slack-deploy-fail.json create mode 100644 .github/templates/slack-deploy-success.json create mode 100644 .github/workflows/build-deploy.yml create mode 100644 .github/workflows/test.yml delete mode 100644 .yarn/cache/axios-npm-1.3.1-744f7a6778-2c83346b81.zip delete mode 100644 packages/web/src/repositories/staking/staking-repository.spec.ts delete mode 100644 packages/web/src/repositories/swap/swap-repository.spec.ts diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index b4bb4fabf..000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,106 +0,0 @@ -version: 2.1 - -orbs: - slack: circleci/slack@4.12.0 - aws-ecr: circleci/aws-ecr@8.2.1 - -commands: - init-slack: - steps: - - run: - name: Setup Message Info - when: always - command: | - SLACK_TEMPLATE_BUILD_START=$(cat .circleci/template/slack-build-start.json) - SLACK_TEMPLATE_BUILD_FINISH=$(cat .circleci/template/slack-build-finish.json) - SLACK_TEMPLATE_BUILD_FAIL=$(cat .circleci/template/slack-build-fail.json) - SLACK_TEMPLATE_DEPLOY_SUCCESS=$(cat .circleci/template/slack-deploy-success.json) - SLACK_TEMPLATE_DEPLOY_FAIL=$(cat .circleci/template/slack-deploy-fail.json) - echo "export SLACK_TEMPLATE_BUILD_START='${SLACK_TEMPLATE_BUILD_START}'" >> $BASH_ENV - echo "export SLACK_TEMPLATE_BUILD_FINISH='${SLACK_TEMPLATE_BUILD_FINISH}'" >> $BASH_ENV - echo "export SLACK_TEMPLATE_BUILD_FAIL='${SLACK_TEMPLATE_BUILD_FAIL}'" >> $BASH_ENV - echo "export SLACK_TEMPLATE_DEPLOY_SUCCESS='${SLACK_TEMPLATE_DEPLOY_SUCCESS}'" >> $BASH_ENV - echo "export SLACK_TEMPLATE_DEPLOY_FAIL='${SLACK_TEMPLATE_DEPLOY_FAIL}'" >> $BASH_ENV - source $BASH_ENV - notification-build-start: - steps: - - slack/notify: - channel: "C04LTJY4GCS" - event: always - template: SLACK_TEMPLATE_BUILD_START - notification-build-finish: - steps: - - slack/notify: - channel: "C04LTJY4GCS" - event: pass - template: SLACK_TEMPLATE_BUILD_FINISH - notification-build-fail: - steps: - - slack/notify: - channel: "C04LTJY4GCS" - event: fail - template: SLACK_TEMPLATE_BUILD_FAIL - notification-deploy-success: - steps: - - slack/notify: - channel: "C04LTJY4GCS,C04LWHYHC92" - event: pass - template: SLACK_TEMPLATE_DEPLOY_SUCCESS - notification-deploy-fail: - steps: - - slack/notify: - channel: "C04LTJY4GCS,C04LWHYHC92" - event: fail - template: SLACK_TEMPLATE_DEPLOY_FAIL - -jobs: - build: - docker: - - image: cimg/base:stable - environment: - TZ: "Asia/Seoul" - steps: - - checkout - - init-slack - - notification-build-start - - deploy: - machine: - image: ubuntu-2004:current - docker_layer_caching: true - steps: - - checkout - - aws-ecr/build-and-push-image: - repo: "${SERVICE_NAME}" - tag: '${CIRCLE_BRANCH},$(date "+%Y%m%d%H%M%S")' - - run: - name: Deploy Over SSH - command: | - ssh "${SERVER_ADDRESS}" "./circle-ci-deploy.sh ${SERVICE_NAME} ${CIRCLE_BRANCH} ${CIRCLE_BRANCH} ${PORT}" - - init-slack - - notification-deploy-success - - notification-deploy-fail - -workflows: - build-and-deploy: - jobs: - - build: - context: - - SLACK_GNOSWAP - filters: - branches: - only: - - main - - develop - - environment - - deploy: - context: - - AWS_DEPLOY - - SLACK_GNOSWAP - - GNOSWAP_FRONT_MAIN_ARGS - requires: - - build - filters: - branches: - only: - - main diff --git a/.circleci/template/slack-build-fail.json b/.circleci/template/slack-build-fail.json deleted file mode 100644 index 9b7a45d9e..000000000 --- a/.circleci/template/slack-build-fail.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "text": "[Gnoswap Front] Build Failed.. T_T", - "blocks": [ - { - "type": "header", - "text": { - "type": "plain_text", - "text": "[Gnoswap Front] Build Failed.", - "emoji": true - } - } - ], - "attachments": [ - { - "color": "#ff527d", - "blocks": [ - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*Project*: \"$CIRCLE_PROJECT_REPONAME\"" - }, - { - "type": "mrkdwn", - "text": "*Branch*: $CIRCLE_BRANCH" - }, - { - "type": "mrkdwn", - "text": "*Commit*: $CIRCLE_SHA1" - }, - { - "type": "mrkdwn", - "text": "*Author*: $CIRCLE_USERNAME" - } - ], - "accessory": { - "type": "image", - "image_url": "https://cdn-images-1.medium.com/fit/c/36/36/1*KsQUYlzEvCEKcPj0YmWOEQ.jpeg", - "alt_text": "CircleCI logo" - } - }, - { - "type": "divider" - }, - { - "type": "actions", - "elements": [ - { - "type": "button", - "text": { - "type": "plain_text", - "text": "빌드내용 확인", - "emoji": true - }, - "value": "current_version", - "url": "$CIRCLE_BUILD_URL" - }, - { - "type": "button", - "text": { - "type": "plain_text", - "text": "Github", - "emoji": true - }, - "value": "current_version", - "url": "https://github.com/onbloc/$CIRCLE_PROJECT_REPONAME/tree/$CIRCLE_BRANCH" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/.circleci/template/slack-build-finish.json b/.circleci/template/slack-build-finish.json deleted file mode 100644 index 1ea3498b7..000000000 --- a/.circleci/template/slack-build-finish.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "text": "[Gnoswap Front] Build Finished !", - "blocks": [ - { - "type": "header", - "text": { - "type": "plain_text", - "text": "[Gnoswap Front] Build Finished.", - "emoji": true - } - } - ], - "attachments": [ - { - "color": "#095bff", - "blocks": [ - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*Project*: \"$CIRCLE_PROJECT_REPONAME\"" - }, - { - "type": "mrkdwn", - "text": "*Branch*: $CIRCLE_BRANCH" - }, - { - "type": "mrkdwn", - "text": "*Commit*: $CIRCLE_SHA1" - }, - { - "type": "mrkdwn", - "text": "*Author*: $CIRCLE_USERNAME" - } - ], - "accessory": { - "type": "image", - "image_url": "https://cdn-images-1.medium.com/fit/c/36/36/1*KsQUYlzEvCEKcPj0YmWOEQ.jpeg", - "alt_text": "CircleCI logo" - } - }, - { - "type": "divider" - }, - { - "type": "actions", - "elements": [ - { - "type": "button", - "text": { - "type": "plain_text", - "text": "빌드내용 확인", - "emoji": true - }, - "value": "current_version", - "url": "$CIRCLE_BUILD_URL" - }, - { - "type": "button", - "text": { - "type": "plain_text", - "text": "Github", - "emoji": true - }, - "value": "current_version", - "url": "https://github.com/onbloc/$CIRCLE_PROJECT_REPONAME/tree/$CIRCLE_BRANCH" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/.circleci/template/slack-build-start.json b/.circleci/template/slack-build-start.json deleted file mode 100644 index dbdd51521..000000000 --- a/.circleci/template/slack-build-start.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "text": "[Gnoswap Front] Start...", - "blocks": [ - { - "type": "header", - "text": { - "type": "plain_text", - "text": "[Gnoswap Front] Start...", - "emoji": true - } - } - ], - "attachments": [ - { - "blocks": [ - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*Project*: \"$CIRCLE_PROJECT_REPONAME\"" - }, - { - "type": "mrkdwn", - "text": "*Branch*: $CIRCLE_BRANCH" - }, - { - "type": "mrkdwn", - "text": "*Commit*: $CIRCLE_SHA1" - }, - { - "type": "mrkdwn", - "text": "*Author*: $CIRCLE_USERNAME" - } - ], - "accessory": { - "type": "image", - "image_url": "https://cdn-images-1.medium.com/fit/c/36/36/1*KsQUYlzEvCEKcPj0YmWOEQ.jpeg", - "alt_text": "CircleCI logo" - } - }, - { - "type": "divider" - }, - { - "type": "actions", - "elements": [ - { - "type": "button", - "text": { - "type": "plain_text", - "text": "빌드내용 확인", - "emoji": true - }, - "value": "current_version", - "url": "$CIRCLE_BUILD_URL" - }, - { - "type": "button", - "text": { - "type": "plain_text", - "text": "Github", - "emoji": true - }, - "value": "current_version", - "url": "https://github.com/onbloc/$CIRCLE_PROJECT_REPONAME/tree/$CIRCLE_BRANCH" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/.circleci/template/slack-deploy-fail.json b/.circleci/template/slack-deploy-fail.json deleted file mode 100644 index 97d9271fa..000000000 --- a/.circleci/template/slack-deploy-fail.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "text": "[Gnoswap Front] Deploy Failed T_T", - "blocks": [ - { - "type": "header", - "text": { - "type": "plain_text", - "text": "[Gnoswap Front] Deploy Failed.", - "emoji": true - } - } - ], - "attachments": [ - { - "color": "#ff527d", - "blocks": [ - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*Project*: \"$CIRCLE_PROJECT_REPONAME\"" - }, - { - "type": "mrkdwn", - "text": "*Branch*: $CIRCLE_BRANCH" - }, - { - "type": "mrkdwn", - "text": "*Commit*: $CIRCLE_SHA1" - }, - { - "type": "mrkdwn", - "text": "*Author*: $CIRCLE_USERNAME" - } - ], - "accessory": { - "type": "image", - "image_url": "https://cdn-images-1.medium.com/fit/c/36/36/1*KsQUYlzEvCEKcPj0YmWOEQ.jpeg", - "alt_text": "CircleCI logo" - } - }, - { - "type": "divider" - }, - { - "type": "actions", - "elements": [ - { - "type": "button", - "text": { - "type": "plain_text", - "text": "빌드내용 확인", - "emoji": true - }, - "value": "current_version", - "url": "$CIRCLE_BUILD_URL" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/.circleci/template/slack-deploy-success.json b/.circleci/template/slack-deploy-success.json deleted file mode 100644 index 88ccc4845..000000000 --- a/.circleci/template/slack-deploy-success.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "text": "[Gnoswap Front] Deploy succeeded!", - "blocks": [ - { - "type": "header", - "text": { - "type": "plain_text", - "text": "[Gnoswap Front] Deploy Succeeded.", - "emoji": true - } - } - ], - "attachments": [ - { - "color": "#3ae98a", - "blocks": [ - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*Project*: \"$CIRCLE_PROJECT_REPONAME\"" - }, - { - "type": "mrkdwn", - "text": "*Branch*: $CIRCLE_BRANCH" - }, - { - "type": "mrkdwn", - "text": "*Commit*: $CIRCLE_SHA1" - }, - { - "type": "mrkdwn", - "text": "*Author*: $CIRCLE_USERNAME" - } - ], - "accessory": { - "type": "image", - "image_url": "https://cdn-images-1.medium.com/fit/c/36/36/1*KsQUYlzEvCEKcPj0YmWOEQ.jpeg", - "alt_text": "CircleCI logo" - } - }, - { - "type": "divider" - }, - { - "type": "actions", - "elements": [ - { - "type": "button", - "text": { - "type": "plain_text", - "text": "빌드내용 확인", - "emoji": true - }, - "value": "current_version", - "url": "$CIRCLE_BUILD_URL" - }, - { - "type": "button", - "text": { - "type": "plain_text", - "text": "Gnoswap 접속", - "emoji": true - }, - "value": "current_version", - "url": "http://ec2-3-39-237-79.ap-northeast-2.compute.amazonaws.com:3000/" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml new file mode 100644 index 000000000..bf7d235d0 --- /dev/null +++ b/.github/actions/setup/action.yml @@ -0,0 +1,23 @@ +name: Setup +description: Set up project environment and test environment. +runs: + using: composite + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-node@v3 + with: + node-version: 18 + registry-url: https://registry.npmjs.org + cache: yarn + + - uses: actions/cache@v3 + id: install-cache + with: + path: .yarn/ + key: ${{ runner.os }}-install-${{ hashFiles('**/yarn.lock') }} + + - if: steps.install-cache.outputs.cache-hit != 'true' + run: | + yarn set version berry + shell: bash diff --git a/.github/templates/slack-build-fail.json b/.github/templates/slack-build-fail.json new file mode 100644 index 000000000..c9daf5bed --- /dev/null +++ b/.github/templates/slack-build-fail.json @@ -0,0 +1,46 @@ +{ + "text": "[Gnoswap Front] Build Failed.. T_T", + "blocks": [ + { + "type": "header", + "text": { + "type": "plain_text", + "text": "[Gnoswap Front] Build Failed.", + "emoji": true + } + } + ], + "attachments": [ + { + "color": "#ff527d", + "blocks": [ + { + "type": "section", + "fields": [ + { + "type": "mrkdwn", + "text": "*Project*: \"gnoswap-interface\"" + }, + { + "type": "mrkdwn", + "text": "*Branch*: {{ github.ref }}" + }, + { + "type": "mrkdwn", + "text": "*Commit*: {{ github.sha }}" + }, + { + "type": "mrkdwn", + "text": "*Author*: {{ github.actor }}" + } + ], + "accessory": { + "type": "image", + "image_url": "https://cdn-images-1.medium.com/fit/c/36/36/1*KsQUYlzEvCEKcPj0YmWOEQ.jpeg", + "alt_text": "logo" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/.github/templates/slack-build-start.json b/.github/templates/slack-build-start.json new file mode 100644 index 000000000..4a5672e02 --- /dev/null +++ b/.github/templates/slack-build-start.json @@ -0,0 +1,45 @@ +{ + "text": "[Gnoswap Front] Start...", + "blocks": [ + { + "type": "header", + "text": { + "type": "plain_text", + "text": "[Gnoswap Front] Start...", + "emoji": true + } + } + ], + "attachments": [ + { + "blocks": [ + { + "type": "section", + "fields": [ + { + "type": "mrkdwn", + "text": "*Project*: gnoswap-interface" + }, + { + "type": "mrkdwn", + "text": "*Branch*: {{ github.ref }}" + }, + { + "type": "mrkdwn", + "text": "*Commit*: {{ github.sha }}" + }, + { + "type": "mrkdwn", + "text": "*Author*: {{ github.actor }}" + } + ], + "accessory": { + "type": "image", + "image_url": "https://cdn-images-1.medium.com/fit/c/36/36/1*KsQUYlzEvCEKcPj0YmWOEQ.jpeg", + "alt_text": "logo" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/.github/templates/slack-deploy-fail.json b/.github/templates/slack-deploy-fail.json new file mode 100644 index 000000000..48a330e22 --- /dev/null +++ b/.github/templates/slack-deploy-fail.json @@ -0,0 +1,64 @@ +{ + "text": "[Gnoswap Front] Deploy Failed T_T", + "blocks": [ + { + "type": "header", + "text": { + "type": "plain_text", + "text": "[Gnoswap Front] Deploy Failed.", + "emoji": true + } + } + ], + "attachments": [ + { + "color": "#ff527d", + "blocks": [ + { + "type": "section", + "fields": [ + { + "type": "mrkdwn", + "text": "*Project*: \"gnoswap-interface\"" + }, + { + "type": "mrkdwn", + "text": "*Branch*: {{ github.ref }}" + }, + { + "type": "mrkdwn", + "text": "*Commit*: {{ github.sha }}" + }, + { + "type": "mrkdwn", + "text": "*Author*: {{ github.actor }}" + } + ], + "accessory": { + "type": "image", + "image_url": "https://cdn-images-1.medium.com/fit/c/36/36/1*KsQUYlzEvCEKcPj0YmWOEQ.jpeg", + "alt_text": "logo" + } + }, + { + "type": "divider" + }, + { + "type": "actions", + "elements": [ + { + "type": "button", + "text": { + "type": "plain_text", + "text": "Github 접속", + "emoji": true + }, + "value": "repository", + "url": "https://github.com/gnoswap-labs/gnoswap-interface" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.github/templates/slack-deploy-success.json b/.github/templates/slack-deploy-success.json new file mode 100644 index 000000000..3c27ff084 --- /dev/null +++ b/.github/templates/slack-deploy-success.json @@ -0,0 +1,64 @@ +{ + "text": "[Gnoswap Front] Deploy succeeded!", + "blocks": [ + { + "type": "header", + "text": { + "type": "plain_text", + "text": "[Gnoswap Front] Deploy Succeeded.", + "emoji": true + } + } + ], + "attachments": [ + { + "color": "#3ae98a", + "blocks": [ + { + "type": "section", + "fields": [ + { + "type": "mrkdwn", + "text": "*Project*: \"gnoswap-interface\"" + }, + { + "type": "mrkdwn", + "text": "*Branch*: {{ github.ref }}" + }, + { + "type": "mrkdwn", + "text": "*Commit*: {{ github.sha }}" + }, + { + "type": "mrkdwn", + "text": "*Author*: {{ github.actor }}" + } + ], + "accessory": { + "type": "image", + "image_url": "https://cdn-images-1.medium.com/fit/c/36/36/1*KsQUYlzEvCEKcPj0YmWOEQ.jpeg", + "alt_text": "logo" + } + }, + { + "type": "divider" + }, + { + "type": "actions", + "elements": [ + { + "type": "button", + "text": { + "type": "plain_text", + "text": "Github 접속", + "emoji": true + }, + "value": "repository", + "url": "https://github.com/gnoswap-labs/gnoswap-interface" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.github/workflows/build-deploy.yml b/.github/workflows/build-deploy.yml new file mode 100644 index 000000000..c4d931a60 --- /dev/null +++ b/.github/workflows/build-deploy.yml @@ -0,0 +1,95 @@ +name: Build And Deploy +on: + workflow_run: + workflows: ['Test'] + branches: [develop, main] + types: + - completed + +jobs: + build-and-upload: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Notify on build start + uses: slackapi/slack-github-action@v1.23.0 + env: + SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} + with: + channel-id: ${{ secrets.SLACK_CHANNEL }} + payload-file-path: "./.github/templates/slack-build-start.json" + + - name: Setup + uses: ./.github/actions/setup + + - name: Configure credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v1 + + - name: Push image + id: push-image + env: + ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} + IMAGE_TAG: ${{ github.sha }} + BRANCH_NAME: ${{ github.ref_name }} + ECR_REPOSITORY: gnoswap-front + run: | + docker build \ + -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG \ + -t $ECR_REGISTRY/$ECR_REPOSITORY:$BRANCH_NAME \ + -t $ECR_REGISTRY/$ECR_REPOSITORY:latest \ + . + docker push --all-tags $ECR_REGISTRY/$ECR_REPOSITORY + + - name: Notify on build start + if: failure() + uses: slackapi/slack-github-action@v1.23.0 + env: + SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} + with: + channel-id: ${{ secrets.SLACK_CHANNEL }} + payload-file-path: "./.github/templates/slack-build-fail.json" + + # TODO: Migrating from EC2 to an ECS environment + deployment: + needs: build-and-upload + runs-on: ubuntu-latest + steps: + - name: Deploy + uses: appleboy/ssh-action@master + env: + SERVICE_NAME: gnoswap-front + BRANCH_NAME: ${{ github.ref_name }} + with: + host: ${{ secrets.REMOTE_IP }} + port: ${{ secrets.REMOTE_PORT }} + username: ${{ secrets.REMOTE_SSH_ID }} + key: ${{ secrets.REMOTE_SSH_KEY }} + script: | + ./deploy.sh $SERVICE_NAME $BRANCH_NAME + + # TODO: Discuss and decide to adopt Chromatic UI + # chromatic-deployment: + # needs: wait-on-tests + # runs-on: ubuntu-latest + # steps: + # - name: Checkout + # uses: actions/checkout@v3 + + # - name: Setup + # uses: ./.github/actions/setup + + # - name: Push chromatic UI + # uses: chromaui/action@v1 + # with: + # projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN_2 }} + # workingDir: packages/web diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..6d976f666 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,23 @@ +name: Test +on: + push: + branches: [develop, main] + pull_request: + +jobs: + unit-tests: + name: Run unit tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: ./.github/actions/setup + - run: yarn workspace @gnoswap-labs/gno-client test + - run: yarn workspace @gnoswap-labs/web test:ci + + # TODO: Apply when you're done setting up your storybook environment + # storybook-tests: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v3 + # - uses: ./.github/actions/setup + # - run: yarn workspace @gnoswap-labs/web test-storybook diff --git a/.pnp.cjs b/.pnp.cjs index 06c1716c1..18ad28e86 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -4661,10 +4661,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@types/node", "npm:18.14.6"],\ ["@typescript-eslint/eslint-plugin", "virtual:633d0b1ebf5eacb97d5385310e4a1da0da5c71bd2da94444b0854adcd2b461b4fa1f1723e68365e842e7f65c7b1857521c08bde05cec771f05f2fea80ef0f7e1#npm:5.54.0"],\ ["@typescript-eslint/parser", "virtual:633d0b1ebf5eacb97d5385310e4a1da0da5c71bd2da94444b0854adcd2b461b4fa1f1723e68365e842e7f65c7b1857521c08bde05cec771f05f2fea80ef0f7e1#npm:5.54.0"],\ - ["axios", "npm:1.3.1"],\ + ["axios", "npm:1.3.4"],\ ["dotenv", "npm:16.0.3"],\ ["eslint", "npm:8.35.0"],\ - ["follow-redirects", "virtual:744f7a677821bf4284bc2a81750affa608578bf982f3d0e695d6aa4607d7be535993b673f208ce2c80f17692d07199184e522133e4cb1fb5b00c2d1685adcb9e#npm:1.15.2"],\ + ["follow-redirects", "virtual:01ea6851789e289a01b796f810de178bac6d56a5415f6812163a8c36f06eaa64bb9993c92dc00329a5b2f936da5273a082f393404924adfde56b26b8e581ef5e#npm:1.15.2"],\ ["form-data", "npm:4.0.0"],\ ["jest", "virtual:633d0b1ebf5eacb97d5385310e4a1da0da5c71bd2da94444b0854adcd2b461b4fa1f1723e68365e842e7f65c7b1857521c08bde05cec771f05f2fea80ef0f7e1#npm:29.4.3"],\ ["lodash.merge", "npm:4.6.2"],\ @@ -10379,21 +10379,11 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["axios", [\ - ["npm:1.3.1", {\ - "packageLocation": "./.yarn/cache/axios-npm-1.3.1-744f7a6778-2c83346b81.zip/node_modules/axios/",\ - "packageDependencies": [\ - ["axios", "npm:1.3.1"],\ - ["follow-redirects", "virtual:744f7a677821bf4284bc2a81750affa608578bf982f3d0e695d6aa4607d7be535993b673f208ce2c80f17692d07199184e522133e4cb1fb5b00c2d1685adcb9e#npm:1.15.2"],\ - ["form-data", "npm:4.0.0"],\ - ["proxy-from-env", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }],\ ["npm:1.3.4", {\ "packageLocation": "./.yarn/cache/axios-npm-1.3.4-01ea685178-7440edefcf.zip/node_modules/axios/",\ "packageDependencies": [\ ["axios", "npm:1.3.4"],\ - ["follow-redirects", "virtual:744f7a677821bf4284bc2a81750affa608578bf982f3d0e695d6aa4607d7be535993b673f208ce2c80f17692d07199184e522133e4cb1fb5b00c2d1685adcb9e#npm:1.15.2"],\ + ["follow-redirects", "virtual:01ea6851789e289a01b796f810de178bac6d56a5415f6812163a8c36f06eaa64bb9993c92dc00329a5b2f936da5273a082f393404924adfde56b26b8e581ef5e#npm:1.15.2"],\ ["form-data", "npm:4.0.0"],\ ["proxy-from-env", "npm:1.1.0"]\ ],\ @@ -14679,10 +14669,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ],\ "linkType": "SOFT"\ }],\ - ["virtual:744f7a677821bf4284bc2a81750affa608578bf982f3d0e695d6aa4607d7be535993b673f208ce2c80f17692d07199184e522133e4cb1fb5b00c2d1685adcb9e#npm:1.15.2", {\ - "packageLocation": "./.yarn/__virtual__/follow-redirects-virtual-bdc1e29efa/0/cache/follow-redirects-npm-1.15.2-1ec1dd82be-faa66059b6.zip/node_modules/follow-redirects/",\ + ["virtual:01ea6851789e289a01b796f810de178bac6d56a5415f6812163a8c36f06eaa64bb9993c92dc00329a5b2f936da5273a082f393404924adfde56b26b8e581ef5e#npm:1.15.2", {\ + "packageLocation": "./.yarn/__virtual__/follow-redirects-virtual-a4bd585993/0/cache/follow-redirects-npm-1.15.2-1ec1dd82be-faa66059b6.zip/node_modules/follow-redirects/",\ "packageDependencies": [\ - ["follow-redirects", "virtual:744f7a677821bf4284bc2a81750affa608578bf982f3d0e695d6aa4607d7be535993b673f208ce2c80f17692d07199184e522133e4cb1fb5b00c2d1685adcb9e#npm:1.15.2"],\ + ["follow-redirects", "virtual:01ea6851789e289a01b796f810de178bac6d56a5415f6812163a8c36f06eaa64bb9993c92dc00329a5b2f936da5273a082f393404924adfde56b26b8e581ef5e#npm:1.15.2"],\ ["@types/debug", null],\ ["debug", null]\ ],\ diff --git a/.yarn/cache/axios-npm-1.3.1-744f7a6778-2c83346b81.zip b/.yarn/cache/axios-npm-1.3.1-744f7a6778-2c83346b81.zip deleted file mode 100644 index 6102360ba87cf487c2f30b2fa9c9700ad854f392..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466543 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