exchanges/gateio: Add WebsocketSubmitOrders
wrapper func for spot
#8937
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: [push, pull_request] | |
name: CI | |
env: | |
GO_VERSION: 1.24.x | |
jobs: | |
backend: | |
name: GoCryptoTrader backend (${{ matrix.os }}, ${{ matrix.goarch }}, psql=${{ matrix.psql }}, skip_wrapper_tests=${{ matrix.skip_wrapper_tests}}, sonic=${{ matrix.sonic }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: ubuntu-latest | |
goarch: amd64 | |
psql: true | |
skip_wrapper_tests: false | |
sonic: false | |
- os: ubuntu-latest | |
goarch: 386 | |
psql: true | |
skip_wrapper_tests: true | |
sonic: false | |
- os: ubuntu-24.04-arm | |
goarch: arm64 | |
psql: false # Not supported | |
skip_wrapper_tests: true | |
sonic: false | |
- os: macos-latest | |
goarch: arm64 | |
psql: true | |
skip_wrapper_tests: true | |
sonic: false | |
- os: windows-latest | |
goarch: amd64 | |
psql: true | |
skip_wrapper_tests: true | |
sonic: false | |
- os: ubuntu-latest | |
goarch: amd64 | |
psql: true | |
skip_wrapper_tests: false | |
sonic: true # Only test sonic on linux/amd64 since too many races and fatals across other archs and OS | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Cancel previous workflow runs | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- name: Setup Postgres | |
if: matrix.psql == true | |
uses: ikalnytskyi/action-setup-postgres@v7 | |
with: | |
database: gct_dev_ci | |
id: postgres | |
- name: Set up Postgres environment | |
if: matrix.psql == true | |
run: | | |
echo "PSQL_USER=postgres" >> $GITHUB_ENV | |
echo "PSQL_PASS=postgres" >> $GITHUB_ENV | |
echo "PSQL_HOST=localhost" >> $GITHUB_ENV | |
echo "PSQL_DBNAME=gct_dev_ci" >> $GITHUB_ENV | |
echo "PSQL_TESTDBNAME=gct_dev_ci" >> $GITHUB_ENV | |
echo "PSQL_SSLMODE=disable" >> $GITHUB_ENV | |
echo "PSQL_SKIPSQLCMD=true" >> $GITHUB_ENV | |
shell: bash | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Skip additional wrapper CI tests | |
if: matrix.skip_wrapper_tests == true | |
run: | | |
echo "SKIP_WRAPPER_CI_TESTS=true" >> $GITHUB_ENV | |
shell: bash | |
- name: Additional steps for 386 architecture | |
if: matrix.goarch == '386' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y gcc-multilib | |
shell: bash | |
- name: Set CGO_ENABLED for 386 and macos-latest | |
if: matrix.goarch == '386' || matrix.os == 'macos-latest' | |
run: | | |
echo "CGO_ENABLED=1" >> $GITHUB_ENV | |
shell: bash | |
- name: Set GOFLAGS | |
run: | | |
if [ "${{ matrix.sonic }}" = "true" ]; then | |
echo "GOFLAGS=${GOFLAGS} -tags=sonic_on" >> $GITHUB_ENV | |
fi | |
shell: bash | |
- name: Test | |
run: | # PGSERVICEFILE isn't supported by lib/pq and will cause a panic if set | |
unset PGSERVICEFILE | |
if [ "${{ matrix.goarch }}" = "386" ]; then | |
go test -coverprofile coverage.txt -covermode atomic ./... | |
else | |
go test -race -coverprofile coverage.txt -covermode atomic ./... | |
fi | |
shell: bash | |
env: | |
GOARCH: ${{ matrix.goarch }} | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
backend-docker: | |
name: GoCryptoTrader backend docker (ubuntu-latest, amd64, psql=false, skip_wrapper_tests=true, sonic=false) | |
runs-on: ubuntu-latest | |
steps: | |
- name: Cancel previous workflow runs | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Docker buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Cache Docker layers | |
uses: actions/cache@v4 | |
with: | |
path: /tmp/.docker-buildx-cache | |
key: ${{ runner.os }}-docker-buildx-${{ hashFiles('./.github/workflows/amd64.Dockerfile') }}-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-docker-buildx-${{ hashFiles('./.github/workflows/amd64.Dockerfile') }}- | |
${{ runner.os }}-docker-buildx- | |
- name: Build Docker image | |
run: | | |
docker buildx build \ | |
--load \ | |
--cache-to=type=local,dest=/tmp/.docker-buildx-cache,mode=max \ | |
--cache-from=type=local,src=/tmp/.docker-buildx-cache \ | |
--tag gct-backend-amd64 \ | |
-f ./.github/workflows/amd64.Dockerfile \ | |
. | |
- name: Run Docker image | |
run: | | |
docker run --env SKIP_WRAPPER_CI_TESTS=true --env CI=true --env GCT_DOCKER_CI=true --rm gct-backend-amd64 | |
frontend: | |
name: GoCryptoTrader frontend | |
runs-on: ubuntu-latest | |
steps: | |
- name: Cancel previous workflow runs | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '10.8.x' | |
cache: 'npm' | |
cache-dependency-path: web/package-lock.json | |
- name: Build | |
run: | | |
cd web/ | |
npm install | |
npm run lint | |
npm run build |