-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #32 from thxprotocol/add-auth
Add backends
- Loading branch information
Showing
1,120 changed files
with
67,696 additions
and
1,343 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
node_modules | ||
.github | ||
cache | ||
dist | ||
docker-compose* | ||
.env* | ||
Dockerfile |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
REVERSE_PROXY_PORT=8000 | ||
REVERSE_PROXY_UI_PORT=8080 | ||
CFG_VERSION=latest | ||
CGW_VERSION=latest | ||
TXS_VERSION=latest | ||
UI_VERSION=latest | ||
RPC_NODE_URL=http://host.docker.internal:8545 | ||
ETHEREUM_NODE_URL=http://host.docker.internal:8545 |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,237 @@ | ||
name: API CI | ||
|
||
on: | ||
push: | ||
|
||
jobs: | ||
buildAndTest: | ||
name: CI Pipeline | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
node-version: ['18'] # Add other versions if needed | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Configure AWS 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: us-east-1 | ||
|
||
- name: Install Node.js ${{ matrix.node-version }} | ||
uses: actions/setup-node@v2 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
|
||
- name: Restore Node.js dependencies | ||
uses: actions/cache@v3 | ||
with: | ||
path: ./node_modules | ||
key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-node- | ||
- name: Install Node.js dependencies | ||
run: yarn install --frozen-lockfile | ||
|
||
- name: Cache Node.js dependencies | ||
uses: actions/cache/save@v3 | ||
if: always() | ||
with: | ||
path: ./node_modules | ||
key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} | ||
|
||
- name: Start Hardhat RPC | ||
run: | | ||
yarn hardhat > /dev/null & | ||
yarn hardhat-deploy | ||
- name: Start Safe Transaction Service | ||
run: | | ||
docker compose --env-file=.env.example -f docker-compose.safe.yml up -d --remove-orphans | ||
docker compose exec txs-web python manage.py insert_safe_master_copy --address "0xd916a690676e925Ac9Faf2d01869c13Fd9757ef2" | ||
sudo chmod -R a+rwx ./docker/data | ||
- name: Run Tests | ||
env: | ||
NODE_OPTIONS: --max-old-space-size=8192 | ||
run: | | ||
docker compose -f docker-compose.yml -f docker-compose.api.yml run \ | ||
-e AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }} \ | ||
-e AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }} \ | ||
-e NODE_OPTIONS='--max-old-space-size=8192' \ | ||
-T api \ | ||
npx nx run api:test --verbose | ||
# - name: SonarCloud Scan | ||
# uses: SonarSource/sonarcloud-github-action@master | ||
# env: | ||
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | ||
# with: | ||
# projectBaseDir: apps/api | ||
|
||
bumpVersion: | ||
name: 'Bump Version on develop' | ||
runs-on: ubuntu-latest | ||
if: github.ref == 'refs/heads/develop' | ||
needs: buildAndTest | ||
outputs: | ||
newTag: ${{ steps.version-bump.outputs.newTag }} | ||
|
||
steps: | ||
- name: 'Checkout source code' | ||
uses: 'actions/checkout@v2' | ||
with: | ||
ref: ${{ github.ref }} | ||
|
||
- name: 'Automated Version Bump' | ||
id: version-bump | ||
uses: 'phips28/gh-action-bump-version@master' | ||
with: | ||
tag-prefix: 'v' | ||
tag-suffix: '-api' | ||
commit-message: 'CI: bumps version to {{version}}' | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
PACKAGEJSON_DIR: 'apps/api' | ||
|
||
buildAndPushImage: | ||
name: Build and Push docker image | ||
runs-on: ubuntu-latest | ||
if: github.ref == 'refs/heads/develop' | ||
needs: bumpVersion | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: Install Node.js ${{ matrix.node-version }} | ||
uses: actions/setup-node@v2 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
|
||
- name: Configure AWS 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: eu-west-3 | ||
|
||
- name: Login to ECR | ||
uses: docker/login-action@v1 | ||
with: | ||
registry: 275440070213.dkr.ecr.eu-west-3.amazonaws.com | ||
|
||
- name: Docker meta | ||
id: meta | ||
uses: docker/metadata-action@v3 | ||
with: | ||
images: | | ||
275440070213.dkr.ecr.eu-west-3.amazonaws.com/api | ||
tags: | | ||
type=ref,event=branch | ||
type=sha | ||
type=semver,pattern={{version}},value=${{needs.bumpVersion.outputs.newTag}} | ||
type=semver,pattern={{major}}.{{minor}},value=${{needs.bumpVersion.outputs.newTag}} | ||
type=semver,pattern={{raw}},value=${{needs.bumpVersion.outputs.newTag}} | ||
- name: Set correct version | ||
run: npm version ${{needs.bumpVersion.outputs.newTag}} --allow-same-version=true --git-tag-version=false | ||
working-directory: ./apps/api | ||
|
||
- name: Build | ||
uses: docker/build-push-action@v2 | ||
with: | ||
context: . | ||
file: apps/api/Dockerfile | ||
push: true | ||
tags: ${{ steps.meta.outputs.tags }} | ||
labels: ${{ steps.meta.outputs.labels }} | ||
|
||
buildAndPushHotfixImage: | ||
name: Build and Push hotfix docker image | ||
runs-on: ubuntu-latest | ||
if: startsWith(github.ref,'refs/heads/hotfix/') | ||
needs: buildAndTest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: Install Node.js ${{ matrix.node-version }} | ||
uses: actions/setup-node@v2 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
|
||
- name: Configure AWS 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: eu-west-3 | ||
|
||
- name: Login to ECR | ||
uses: docker/login-action@v1 | ||
with: | ||
registry: 275440070213.dkr.ecr.eu-west-3.amazonaws.com | ||
|
||
- name: Docker meta | ||
id: meta | ||
uses: docker/metadata-action@v3 | ||
with: | ||
images: | | ||
275440070213.dkr.ecr.eu-west-3.amazonaws.com/api | ||
tags: | | ||
type=ref,event=branch | ||
type=sha | ||
- name: Build | ||
uses: docker/build-push-action@v2 | ||
with: | ||
context: . | ||
file: apps/api/Dockerfile | ||
push: true | ||
tags: ${{ steps.meta.outputs.tags }} | ||
labels: ${{ steps.meta.outputs.labels }} | ||
|
||
autodeploy: | ||
name: Auto deploy develop to dev.api.thx.network | ||
runs-on: ubuntu-latest | ||
if: github.ref == 'refs/heads/develop' | ||
needs: [buildAndPushImage, bumpVersion] | ||
steps: | ||
- name: Install Node.js ${{ matrix.node-version }} | ||
uses: actions/setup-node@v2 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
|
||
- name: Install deploy-scripts | ||
run: npm install -g thxprotocol/deploy-scripts | ||
|
||
- name: Configure AWS 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: eu-west-3 | ||
|
||
- name: Deploy-script | ||
run: thx-deploy ApiDev sha-$(echo ${{github.sha}} | cut -c1-7) | ||
|
||
discord: | ||
name: Update Discord | ||
runs-on: ubuntu-latest | ||
if: github.ref == 'refs/heads/develop' | ||
needs: [autodeploy, bumpVersion] | ||
steps: | ||
- name: Send message | ||
env: | ||
DISCORD_WEBHOOK: ${{ secrets.DISCORD_AWS_WEBHOOK }} | ||
uses: Ilshidur/action-discord@master | ||
with: | ||
args: "${{ needs.autodeploy.result == 'success' && '✅' || '⛔' }} Released APIDev `${{ needs.bumpVersion.outputs.newTag }}`" |
Oops, something went wrong.