Skip to content

Commit

Permalink
added basic CI
Browse files Browse the repository at this point in the history
  • Loading branch information
g-arakelov authored and NickVolynkin committed Nov 15, 2023
1 parent 7481add commit e89601e
Show file tree
Hide file tree
Showing 4 changed files with 240 additions and 0 deletions.
86 changes: 86 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Build

on:
push:
branches: [ 8-add-ci ]

jobs:
build-linux:
runs-on: [ "self-hosted", "aws_autoscaling"]

env:
CONTAINER_TMP: /opt/
HOST_TMP: /home/runner/work/_temp/
DEBIAN_FRONTEND: noninteractive
BOOST_VERSION: "1.80.0"

container:
image: ubuntu:22.04
volumes:
- /home/runner/work/_temp/:/opt/

steps:
- name: Install dependencies
run: |
env && \
apt update && \
apt install -y \
build-essential \
libssl-dev \
cmake \
git \
unzip \
libicu-dev \
curl \
pkg-config \
libspdlog-dev
- name: Print toolchain information
run: |
git --version
cc --version
cmake --version
- name: Checkout sources
uses: actions/checkout@v3
with:
submodules: 'recursive'
fetch-depth: 0

- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.10'

# Workaround: https://github.com/actions/checkout/issues/1169
- name: Mark directory as safe
run: |
git config --system --add safe.directory $PWD
- name: Install boost
uses: MarkusJx/[email protected]
id: install-boost
with:
# A list of supported versions can be found here:
# https://github.com/MarkusJx/prebuilt-boost/blob/main/versions-manifest.json
boost_version: ${{ env.BOOST_VERSION }}
boost_install_dir: ${{ env.CONTAINER_TMP }}
platform_version: 22.04
toolset: gcc
arch: x86

- name: Configure CMake
env:
BOOST_ROOT: "${{ steps.install-boost.outputs.BOOST_ROOT }}"
run: |
cmake -G "Unix Makefiles" \
-B build \
-DCMAKE_BUILD_TYPE=Release
- name: Build proof-producer
env:
BOOST_ROOT: "${{ steps.install-boost.outputs.BOOST_ROOT }}"
run: |
cd build
make
124 changes: 124 additions & 0 deletions .github/workflows/linux_release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
name: Build .deb package

on:
push:
branches: [ 8-add-ci ]

jobs:
build-linux:
runs-on: [ "self-hosted", "aws_autoscaling"]

env:
CONTAINER_TMP: /opt/
HOST_TMP: /home/runner/work/_temp/
DEBIAN_FRONTEND: noninteractive
BOOST_VERSION: "1.80.0"

container:
image: ubuntu:22.04
volumes:
- /home/runner/work/_temp/:/opt/

steps:
- name: Install dependencies
run: |
env && \
apt update && \
apt install -y \
build-essential \
libssl-dev \
cmake \
git \
unzip \
libicu-dev \
curl \
pkg-config \
libspdlog-dev
- name: Print toolchain information
run: |
git --version
cc --version
cmake --version
- name: Checkout sources
uses: actions/checkout@v3
with:
submodules: 'recursive'
fetch-depth: 0

- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.10'

# Workaround: https://github.com/actions/checkout/issues/1169
- name: Mark directory as safe
run: |
git config --system --add safe.directory $PWD
- name: Install boost
uses: MarkusJx/[email protected]
id: install-boost
with:
# A list of supported versions can be found here:
# https://github.com/MarkusJx/prebuilt-boost/blob/main/versions-manifest.json
boost_version: ${{ env.BOOST_VERSION }}
boost_install_dir: ${{ env.CONTAINER_TMP }}
platform_version: 22.04
toolset: gcc
arch: x86

- name: Configure CMake
env:
BOOST_ROOT: "${{ steps.install-boost.outputs.BOOST_ROOT }}"
run: |
cmake -G "Unix Makefiles" \
-B build \
-DCMAKE_BUILD_TYPE=Release
- name: Build proof-producer
env:
BOOST_ROOT: "${{ steps.install-boost.outputs.BOOST_ROOT }}"
run: |
cd build
make
cd ..
- name: Create .deb package
run: |
mkdir -p .debpkg/usr/bin
cp ./build/bin/proof-generator/proof-generator .debpkg/usr/bin
chmod +x .debpkg/usr/bin/proof-generator
mkdir -p .debpkg/DEBIAN
- uses: jiro4989/build-deb-action@v3
with:
package: proof-generator
package_root: .debpkg
maintainer: =nil; Foundation
version: 0.1
arch: 'amd64'
desc: 'zkllvm proof-generator'

- name: Install aws tools
run: |
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
./aws/install
pip3 install mkrepo
- name: Upload packages to repository
env:
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
run: |
PROOF_GENERATOR_PACKAGE=`ls proof-generator*.deb | cut -d'/' -f2`
POOL="ubuntu/pool/main/p/proof-generator"
aws s3api put-object --bucket deb.nil.foundation --key $POOL/$PROOF_GENERATOR_PACKAGE --body $PROOF_GENERATOR_PACKAGE
mkrepo s3://deb.nil.foundation/ubuntu/


29 changes: 29 additions & 0 deletions .github/workflows/set_version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Set version tag

on:
# Triggers the workflow on push to master branch
push:
branches: [ none ]

jobs:
set_version:
name: Set and tag version
runs-on: [ubuntu-latest]
env:
VERSION_FILE_NAME: VERSION
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set version
id: set_version
run: |
version=$(cat ${{ env.VERSION_FILE_NAME }} | tr -d '\r').$GITHUB_RUN_NUMBER
echo "VERSION=$version" >> $GITHUB_ENV
- name: Tag new version
run: git tag v${{ env.VERSION }}

- name: Push tags
uses: ad-m/github-push-action@master
with:
tags: true
1 change: 1 addition & 0 deletions VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.1.0

0 comments on commit e89601e

Please sign in to comment.