Skip to content

fix(server): changelly limits #1037

fix(server): changelly limits

fix(server): changelly limits #1037

Workflow file for this run

name: CoinSpace CI
on:
workflow_dispatch:
push:
branches:
- '**'
tags-ignore:
- '**'
jobs:
release:
runs-on: ubuntu-22.04
if: github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Set app version
run: echo "VERSION=$(node -p -e "require('./web/package.json').version")" >> $GITHUB_ENV
- uses: ncipollo/release-action@v1
with:
tag: v${{ env.VERSION }}
name: v${{ env.VERSION }}
draft: true
allowUpdates: true
omitBodyDuringUpdate: true
omitNameDuringUpdate: true
omitDraftDuringUpdate: true
body: |
* [Web Wallet](https://coin.space/wallet/)
* [Tor Wallet](http://coinspacezp5mmyuicbz2hoafbnduj4vzkttq3grn5mnwdue5t343zid.onion/)
* [iOS Application](https://apps.apple.com/app/coin-wallet-bitcoin-crypto/id980719434?platform=iphone)
* [Android Application](https://play.google.com/store/apps/details?id=com.coinspace.app)
* [Galaxy Store](https://galaxy.store/coinapp)
* [macOS Installer: Coin.Wallet.dmg](https://github.com/CoinSpace/CoinSpace/releases/download/v${{ env.VERSION }}/Coin.Wallet.dmg)
* [Microsoft Store](https://apps.microsoft.com/store/detail/9NBLGGH5PXJQ)
* [Mac App Store](https://apps.apple.com/app/coin-wallet-bitcoin-crypto/id980719434?platform=mac)
* [Linux Snap](https://snapcraft.io/coin)
lint:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
registry-url: https://npm.pkg.github.com/
- env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_READ_TOKEN }}
run: |
npm --prefix web ci
npm --prefix server ci
npm --prefix electron ci
npm --prefix phonegap ci
- run: |
npm run --prefix web lint
npm run --prefix web lint:style
npm run --prefix server lint
npm run --prefix server lint:api
npm run --prefix electron lint
npm run --prefix phonegap lint
build:
needs: lint
environment: ${{ github.ref == 'refs/heads/master' && 'production' || 'development' }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: macos-14
node: 20
VITE_BUILD_TYPE: electron
VITE_PLATFORM: mac
VITE_DISTRIBUTION: mac
SENTRY_DSN_KEY: SENTRY_DSN_MAC
SENTRY_PROJECT: mac
- os: macos-14
node: 20
VITE_BUILD_TYPE: electron
VITE_PLATFORM: mac
VITE_DISTRIBUTION: mas
SENTRY_DSN_KEY: SENTRY_DSN_MAS
SENTRY_PROJECT: mas
- os: macos-14
node: 20
VITE_BUILD_TYPE: electron
VITE_PLATFORM: mac
VITE_DISTRIBUTION: mas-dev
SENTRY_DSN_KEY: SENTRY_DSN_MAS
SENTRY_PROJECT: mas
- os: ubuntu-22.04
node: 20
VITE_BUILD_TYPE: electron
VITE_PLATFORM: linux
VITE_DISTRIBUTION: snap
SENTRY_DSN_KEY: SENTRY_DSN_SNAP
SENTRY_PROJECT: linux
- os: windows-2019
node: 20
VITE_BUILD_TYPE: electron
VITE_PLATFORM: win
VITE_DISTRIBUTION: appx
SENTRY_DSN_KEY: SENTRY_DSN_WIN
SENTRY_PROJECT: win
- os: windows-2019
node: 20
VITE_BUILD_TYPE: electron
VITE_PLATFORM: win
VITE_DISTRIBUTION: appx-dev
SENTRY_DSN_KEY: SENTRY_DSN_WIN
SENTRY_PROJECT: win
- os: macos-14
node: 20
VITE_BUILD_TYPE: phonegap
VITE_PLATFORM: ios
VITE_DISTRIBUTION: ios
SENTRY_DSN_KEY: SENTRY_DSN_IOS
SENTRY_PROJECT: ios
- os: ubuntu-20.04
node: 20
VITE_BUILD_TYPE: phonegap
VITE_PLATFORM: android
VITE_DISTRIBUTION: android-play
SENTRY_DSN_KEY: SENTRY_DSN_ANDROID
SENTRY_PROJECT: android
- os: ubuntu-20.04
node: 20
VITE_BUILD_TYPE: phonegap
VITE_PLATFORM: android
VITE_DISTRIBUTION: android-galaxy
SENTRY_DSN_KEY: SENTRY_DSN_ANDROID
SENTRY_PROJECT: android
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
# https://github.com/electron/forge/issues/2807
if: matrix.VITE_DISTRIBUTION == 'mac'
with:
python-version: '3.10'
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
registry-url: https://npm.pkg.github.com/
- name: Install Node.js dependencies
env:
NODE_ENV: ci
VITE_BUILD_TYPE: ${{ matrix.VITE_BUILD_TYPE }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_READ_TOKEN }}
shell: bash
run: |
npm --prefix web ci
npm --prefix ${VITE_BUILD_TYPE} ci
- name: Install Snapcraft
if: ${{ matrix.VITE_DISTRIBUTION == 'snap' }}
uses: samuelmeuli/action-snapcraft@v2
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_TOKEN }}
- name: Install JDK 11
if: ${{ matrix.VITE_DISTRIBUTION == 'android-play' || matrix.VITE_DISTRIBUTION == 'android-galaxy' }}
uses: actions/setup-java@v1
with:
java-version: 11
- name: Install certificates & prepare for build
env:
VITE_DISTRIBUTION: ${{ matrix.VITE_DISTRIBUTION }}
CERTIFICATE_MAC: ${{ secrets.CERTIFICATE_MAC }}
CERTIFICATE_MAC_PASSWORD: ${{ secrets.CERTIFICATE_MAC_PASSWORD }}
CERTIFICATE_DISTRIBUTION: ${{ secrets.CERTIFICATE_DISTRIBUTION }}
CERTIFICATE_DISTRIBUTION_PASSWORD: ${{ secrets.CERTIFICATE_DISTRIBUTION_PASSWORD }}
PROVISIONING_DISTRIBUTION: ${{ secrets.PROVISIONING_DISTRIBUTION }}
PROVISIONING_DEVELOPMENT: ${{ secrets.PROVISIONING_DEVELOPMENT }}
PROVISIONING_IOS: ${{ secrets.PROVISIONING_IOS }}
PROVISIONING_IOS_WATCH_APP: ${{ secrets.PROVISIONING_IOS_WATCH_APP }}
PROVISIONING_IOS_WATCH_APP_EXTENSION: ${{ secrets.PROVISIONING_IOS_WATCH_APP_EXTENSION }}
GOOGLE_CLOUD_KEY: ${{ secrets.GOOGLE_CLOUD_KEY }}
ANDROID_RELEASE_KEYSTORE: ${{ secrets.ANDROID_RELEASE_KEYSTORE }}
ANDROID_GALAXY_RELEASE_KEYSTORE: ${{ secrets.ANDROID_GALAXY_RELEASE_KEYSTORE }}
CERTIFICATE_SELFSIGN_WIN: ${{ secrets.CERTIFICATE_SELFSIGN_WIN }}
shell: bash
run: |
echo "GITHUB_RUN_NUMBER: $GITHUB_RUN_NUMBER";
echo $GOOGLE_CLOUD_KEY | base64 --decode > gcloud.key.json;
if [[ "$VITE_DISTRIBUTION" == "mac" || "$VITE_DISTRIBUTION" == "mas" || "$VITE_DISTRIBUTION" == "mas-dev" ]]; then
echo $CERTIFICATE_MAC | base64 --decode > certificate.p12;
security create-keychain -p coinspace build.keychain;
security default-keychain -s build.keychain;
security unlock-keychain -p coinspace build.keychain;
security set-keychain-settings build.keychain;
security list-keychains -d user -s build.keychain;
security import certificate.p12 -k build.keychain -P $CERTIFICATE_MAC_PASSWORD -T /usr/bin/codesign -T /usr/bin/productbuild 2>&1 >/dev/null;
security set-key-partition-list -S apple-tool:,apple: -s -k coinspace build.keychain 2>&1 >/dev/null;
rm certificate.p12;
if [[ "$VITE_DISTRIBUTION" == "mas" ]]; then
echo $PROVISIONING_DISTRIBUTION | base64 --decode > electron/embedded.provisionprofile;
fi
if [[ "$VITE_DISTRIBUTION" == "mas-dev" ]]; then
echo $PROVISIONING_DEVELOPMENT | base64 --decode > electron/embedded.provisionprofile;
fi
elif [[ "$VITE_DISTRIBUTION" == "ios" ]]; then
echo $CERTIFICATE_DISTRIBUTION | base64 --decode > certificate.p12;
security create-keychain -p coinspace build.keychain;
security default-keychain -s build.keychain;
security unlock-keychain -p coinspace build.keychain;
security set-keychain-settings build.keychain;
security list-keychains -d user -s build.keychain;
security import certificate.p12 -k build.keychain -P $CERTIFICATE_DISTRIBUTION_PASSWORD -T /usr/bin/codesign -T /usr/bin/productbuild 2>&1 >/dev/null;
security set-key-partition-list -S apple-tool:,apple: -s -k coinspace build.keychain 2>&1 >/dev/null;
rm certificate.p12;
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles/
echo $PROVISIONING_IOS | base64 --decode > ~/Library/MobileDevice/Provisioning\ Profiles/com.coinspace.wallet.mobileprovision;
echo $PROVISIONING_IOS_WATCH_APP | base64 --decode > ~/Library/MobileDevice/Provisioning\ Profiles/com.coinspace.wallet.watchapp.mobileprovision;
echo $PROVISIONING_IOS_WATCH_APP_EXTENSION | base64 --decode > ~/Library/MobileDevice/Provisioning\ Profiles/com.coinspace.wallet.watchapp.extension.mobileprovision;
elif [[ "$VITE_DISTRIBUTION" == "android-play" || "$VITE_DISTRIBUTION" == "android-galaxy" ]]; then
echo $ANDROID_RELEASE_KEYSTORE | base64 --decode > phonegap/release.keystore;
echo $ANDROID_GALAXY_RELEASE_KEYSTORE | base64 --decode > phonegap/release.galaxy.keystore;
echo "/usr/local/lib/android/sdk/build-tools/33.0.2" >> $GITHUB_PATH
elif [[ "$VITE_DISTRIBUTION" == "appx-dev" ]]; then
echo $CERTIFICATE_SELFSIGN_WIN | base64 --decode > electron/resources/certificate.pfx
elif [[ "$VITE_DISTRIBUTION" == "appx" ]]; then
sed -i 's/function signAppx (program) {/function signAppx (program) { return;/' electron/node_modules/electron-windows-store/lib/sign.js
sed -i 's/function makeCert (parametersOrPublisherName, certFilePath, program) {/function makeCert (parametersOrPublisherName, certFilePath, program) { return;/' electron/node_modules/electron-windows-store/lib/sign.js
fi
- name: Build app
env:
NODE_ENV: production
NODE_OPTIONS: --max-old-space-size=3575
VITE_COMMIT: ${{ github.sha }}
VITE_BUILD_TYPE: ${{ matrix.VITE_BUILD_TYPE }}
VITE_PLATFORM: ${{ matrix.VITE_PLATFORM }}
VITE_DISTRIBUTION: ${{ matrix.VITE_DISTRIBUTION }}
VITE_SITE_URL: ${{ secrets.SITE_URL }}
VITE_SENTRY_DSN: ${{ secrets[matrix.SENTRY_DSN_KEY] }}
VITE_SENTRY_ENVIRONMENT: ${{ github.ref == 'refs/heads/master' && 'production' || 'development' }}
VITE_CHANGELLY_REF: ${{ secrets.CHANGELLY_REF }}
VITE_MOONPAY_API_KEY: ${{ secrets.MOONPAY_API_KEY }}
VITE_ZENDESK_APP_ID: ${{ secrets.ZENDESK_APP_ID }}
VITE_ZENDESK_CLIENT_ID: ${{ secrets.ZENDESK_CLIENT_ID }}
VITE_ZENDESK_URL: ${{ secrets.ZENDESK_URL }}
VITE_GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ matrix.SENTRY_PROJECT }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
GOOGLE_APPLICATION_CREDENTIALS: ${{ github.workspace }}/gcloud.key.json
GOOGLE_CLOUD_BUCKET: ${{ secrets.GOOGLE_CLOUD_BUCKET }}
CERTIFICATE_SELFSIGN_WIN_PASSWORD: ${{ secrets.CERTIFICATE_SELFSIGN_WIN_PASSWORD }}
APPX_IDENTITY: ${{ secrets.APPX_IDENTITY }}
APPX_PUBLISHER: ${{ secrets.APPX_PUBLISHER }}
APPX_PUBLISHER_DEV: ${{ secrets.APPX_PUBLISHER_DEV }}
APPX_PUBLISHER_NAME: ${{ secrets.APPX_PUBLISHER_NAME }}
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_TOKEN }}
shell: bash
run: |
npm --prefix web run i18n:ci
npm --prefix web run build
npm --prefix ${VITE_BUILD_TYPE} run build