Cosmos-Server/.circleci/config.yml
2023-10-22 12:18:24 +01:00

151 lines
4.1 KiB
YAML

version: 2
jobs:
build:
machine: # executor type
image: ubuntu-2204:2023.07.2
steps:
- checkout
- run:
name: Setup docker and buildx
command: docker buildx create --use
- run:
name: install dependencies
command: sudo apt-get install bash curl
- run:
name: download Go
command: wget https://golang.org/dl/go1.20.2.linux-amd64.tar.gz
- run:
name: install Go
command: sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.20.2.linux-amd64.tar.gz
- run:
name: set Go path
command: echo 'export PATH=$PATH:/usr/local/go/bin' >> $BASH_ENV
- run: |
echo 'export NVM_DIR="/opt/circleci/.nvm"' >> $BASH_ENV
echo ' [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> $BASH_ENV
- run: |
node -v
- run: |
nvm install v16
node -v
nvm alias default v16
- run: |
node -v
- run: docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD
- run:
name: Install dependencies
command: npm install
- run:
name: Download GeoLite2-Country database
command: |
curl -s -L "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country&license_key=$MAX_TOKEN&suffix=tar.gz" -o GeoLite2-Country.tar.gz
tar -xzf GeoLite2-Country.tar.gz --strip-components 1 --wildcards "*.mmdb"
- run:
name: Download and Extract ARM Nebula Binary
command: |
curl -LO https://github.com/slackhq/nebula/releases/download/v1.7.2/nebula-linux-arm64.tar.gz
tar -xzvf nebula-linux-arm64.tar.gz
- run:
name: Rename ARM Nebula Binary
command: |
mv nebula nebula-arm
mv nebula-cert nebula-arm-cert
- run:
name: Download and Extract Nebula Binary
command: |
curl -LO https://github.com/slackhq/nebula/releases/download/v1.7.2/nebula-linux-amd64.tar.gz
tar -xzvf nebula-linux-amd64.tar.gz
- run:
name: Build UI
command: npm run client-build
- run:
name: Build and publish dockerfiles
command: sh docker.sh
buildarm:
machine:
image: ubuntu-2004:202101-01
resource_class: arm.medium
steps:
- checkout
- run:
name: install dependencies
command: sudo apt-get install bash curl
- run:
name: download Go
command: wget https://golang.org/dl/go1.20.2.linux-arm64.tar.gz
- run:
name: install Go
command: sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.20.2.linux-arm64.tar.gz
- run:
name: set Go path
command: echo 'export PATH=$PATH:/usr/local/go/bin' >> $BASH_ENV
- run: |
echo 'export NVM_DIR="/opt/circleci/.nvm"' >> $BASH_ENV
echo ' [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> $BASH_ENV
- run: |
node -v
- run: |
nvm install v16
node -v
nvm alias default v16
- run: |
node -v
- run: docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD
- run:
name: Install dependencies
command: npm install
- run:
name: Download GeoLite2-Country database
command: |
curl -s -L "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country&license_key=$MAX_TOKEN&suffix=tar.gz" -o GeoLite2-Country.tar.gz
tar -xzf GeoLite2-Country.tar.gz --strip-components 1 --wildcards "*.mmdb"
- run:
name: Build UI
command: npm run client-build
- run:
name: Build and publish dockerfiles
command: sh docker.arm64.sh
workflows:
version: 2
build-all:
jobs:
- build:
filters:
branches:
only:
- master
- unstable