Merge pull request #23 from freeflowuniverse/development_release
feat: support macos in ci
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
name: Build Hero & Run tests
|
name: Build Hero on Linux & Run tests
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
@@ -22,7 +22,7 @@ jobs:
|
|||||||
# os: macos-latest
|
# os: macos-latest
|
||||||
# short-name: macos-arm64
|
# short-name: macos-arm64
|
||||||
# - target: x86_64-apple-darwin
|
# - target: x86_64-apple-darwin
|
||||||
# os: macos-latest
|
# os: macos-13
|
||||||
# short-name: macos-i64
|
# short-name: macos-i64
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
@@ -47,30 +47,24 @@ jobs:
|
|||||||
ln -s $GITHUB_WORKSPACE/lib ~/.vmodules/freeflowuniverse/herolib
|
ln -s $GITHUB_WORKSPACE/lib ~/.vmodules/freeflowuniverse/herolib
|
||||||
|
|
||||||
echo "Installing secp256k1..."
|
echo "Installing secp256k1..."
|
||||||
if [ "${{ matrix.os }}" = "macos-latest" ]; then
|
# Install build dependencies
|
||||||
brew install secp256k1
|
sudo apt-get install -y build-essential wget autoconf libtool
|
||||||
elif [ "${{ matrix.os }}" = "ubuntu-latest" ]; then
|
|
||||||
# Install build dependencies
|
|
||||||
sudo apt-get install -y build-essential wget autoconf libtool
|
|
||||||
|
|
||||||
# Download and extract secp256k1
|
# Download and extract secp256k1
|
||||||
cd /tmp
|
cd /tmp
|
||||||
wget https://github.com/bitcoin-core/secp256k1/archive/refs/tags/v0.3.2.tar.gz
|
wget https://github.com/bitcoin-core/secp256k1/archive/refs/tags/v0.3.2.tar.gz
|
||||||
tar -xvf v0.3.2.tar.gz
|
tar -xvf v0.3.2.tar.gz
|
||||||
|
|
||||||
# Build and install
|
# Build and install
|
||||||
cd secp256k1-0.3.2/
|
cd secp256k1-0.3.2/
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
./configure
|
./configure
|
||||||
make -j 5
|
make -j 5
|
||||||
sudo make install
|
sudo make install
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
rm -rf secp256k1-0.3.2 v0.3.2.tar.gz
|
||||||
|
|
||||||
# Cleanup
|
|
||||||
rm -rf secp256k1-0.3.2 v0.3.2.tar.gz
|
|
||||||
else
|
|
||||||
echo "secp256k1 installation not implemented for ${OSNAME}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "secp256k1 installation complete!"
|
echo "secp256k1 installation complete!"
|
||||||
|
|
||||||
- name: Install and Start Redis
|
- name: Install and Start Redis
|
||||||
@@ -82,32 +76,18 @@ jobs:
|
|||||||
# Install Redis
|
# Install Redis
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y redis
|
sudo apt-get install -y redis
|
||||||
|
|
||||||
|
# Start Redis
|
||||||
|
redis-server --daemonize yes
|
||||||
|
|
||||||
# Print versions
|
# Print versions
|
||||||
redis-cli --version
|
redis-cli --version
|
||||||
redis-server --version
|
redis-server --version
|
||||||
# Start Redis
|
|
||||||
sudo systemctl start redis-server
|
|
||||||
redis-cli ping
|
|
||||||
|
|
||||||
- name: Build Hero
|
- name: Build Hero
|
||||||
run: |
|
run: |
|
||||||
if [ "${{ matrix.os }}" = "ubuntu-latest" ]; then
|
v -cg -enable-globals -w -n cli/hero.v
|
||||||
v -cg -enable-globals -w -n cli/hero.v
|
|
||||||
# else if [ "${{ matrix.os }}" = "macos-latest" ]; then
|
|
||||||
# v -w -cg -gc none -no-retry-compilation -cc tcc -d use_openssl -enable-globals cli/hero.v
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Do all the basic tests
|
- name: Do all the basic tests
|
||||||
run: |
|
run: |
|
||||||
alias vtest='v -stats -enable-globals -n -w -cg -gc none -no-retry-compilation -cc tcc test'
|
|
||||||
./test_basic.vsh
|
./test_basic.vsh
|
||||||
|
|
||||||
# - name: Upload to S3
|
|
||||||
# run: |
|
|
||||||
# echo 'export S3KEYID=${{ secrets.S3KEYID }}' > ${HOME}/mysecrets.sh
|
|
||||||
# echo 'export S3APPID=${{ secrets.S3APPID }}' >> ${HOME}/mysecrets.sh
|
|
||||||
# set -e && cat ${HOME}/mysecrets.sh
|
|
||||||
# sudo bash +x scripts/githubactions.sh
|
|
||||||
|
|
||||||
- name: Extract tag name
|
|
||||||
run: echo "TAG_NAME=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
|
|
||||||
66
.github/workflows/hero_build_macos.yml
vendored
Normal file
66
.github/workflows/hero_build_macos.yml
vendored
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
name: Build Hero on Macos & Run tests
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- target: aarch64-apple-darwin
|
||||||
|
os: macos-latest
|
||||||
|
short-name: macos-arm64
|
||||||
|
- target: x86_64-apple-darwin
|
||||||
|
os: macos-13
|
||||||
|
short-name: macos-i64
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
|
||||||
|
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
|
||||||
|
- run: echo "🔎 The name of your branch is ${{ github.ref_name }} and your repository is ${{ github.repository }}."
|
||||||
|
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Vlang
|
||||||
|
run: |
|
||||||
|
git clone --depth=1 https://github.com/vlang/v
|
||||||
|
cd v
|
||||||
|
make
|
||||||
|
sudo ./v symlink
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
- name: Setup Herolib
|
||||||
|
run: |
|
||||||
|
mkdir -p ~/.vmodules/freeflowuniverse
|
||||||
|
ln -s $GITHUB_WORKSPACE/lib ~/.vmodules/freeflowuniverse/herolib
|
||||||
|
|
||||||
|
echo "Installing secp256k1..."
|
||||||
|
brew install secp256k1
|
||||||
|
|
||||||
|
echo "secp256k1 installation complete!"
|
||||||
|
|
||||||
|
- name: Install and Start Redis
|
||||||
|
run: |
|
||||||
|
brew update
|
||||||
|
brew install redis
|
||||||
|
|
||||||
|
# Start Redis
|
||||||
|
redis-server --daemonize yes
|
||||||
|
|
||||||
|
# Print versions
|
||||||
|
redis-cli --version
|
||||||
|
redis-server --version
|
||||||
|
|
||||||
|
- name: Build Hero
|
||||||
|
run: |
|
||||||
|
v -w -cg -gc none -no-retry-compilation -d use_openssl -enable-globals cli/hero.v
|
||||||
|
|
||||||
|
- name: Do all the basic tests
|
||||||
|
run: |
|
||||||
|
./test_basic.vsh
|
||||||
132
.github/workflows/release.yml
vendored
Normal file
132
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
name: Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- v*
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
upload:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- target: aarch64-apple-darwin
|
||||||
|
os: macos-latest
|
||||||
|
short-name: macos-arm64
|
||||||
|
- target: x86_64-apple-darwin
|
||||||
|
os: macos-13
|
||||||
|
short-name: macos-i64
|
||||||
|
- target: x86_64-unknown-linux-musl
|
||||||
|
os: ubuntu-latest
|
||||||
|
short-name: linux-i64
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Vlang
|
||||||
|
run: |
|
||||||
|
git clone --depth=1 https://github.com/vlang/v
|
||||||
|
cd v
|
||||||
|
make
|
||||||
|
sudo ./v symlink
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
- name: Setup Herolib
|
||||||
|
run: |
|
||||||
|
mkdir -p ~/.vmodules/freeflowuniverse
|
||||||
|
ln -s $GITHUB_WORKSPACE/lib ~/.vmodules/freeflowuniverse/herolib
|
||||||
|
|
||||||
|
echo "Installing secp256k1..."
|
||||||
|
if [[ ${{ matrix.os }} == 'macos-latest' || ${{ matrix.os }} == 'macos-13' ]]; then
|
||||||
|
brew install secp256k1
|
||||||
|
|
||||||
|
elif [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then
|
||||||
|
# Install build dependencies
|
||||||
|
sudo apt-get install -y build-essential wget autoconf libtool
|
||||||
|
|
||||||
|
# Download and extract secp256k1
|
||||||
|
cd /tmp
|
||||||
|
wget https://github.com/bitcoin-core/secp256k1/archive/refs/tags/v0.3.2.tar.gz
|
||||||
|
tar -xvf v0.3.2.tar.gz
|
||||||
|
|
||||||
|
# Build and install
|
||||||
|
cd secp256k1-0.3.2/
|
||||||
|
./autogen.sh
|
||||||
|
./configure
|
||||||
|
make -j 5
|
||||||
|
sudo make install
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Unsupported OS: ${{ matrix.os }}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "secp256k1 installation complete!"
|
||||||
|
|
||||||
|
- name: Build Hero
|
||||||
|
run: |
|
||||||
|
v -w -cg -gc none -no-retry-compilation -d use_openssl -enable-globals cli/hero.v -o cli/hero-${{ matrix.target }}
|
||||||
|
|
||||||
|
- name: Upload
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: hero-${{ matrix.target }}
|
||||||
|
path: cli/hero-${{ matrix.target }}
|
||||||
|
|
||||||
|
release_hero:
|
||||||
|
needs: upload
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
# TODO: this adds commits that don't belong to this branhc, check another action
|
||||||
|
# - name: Generate changelog
|
||||||
|
# id: changelog
|
||||||
|
# uses: heinrichreimer/github-changelog-generator-action@v2.3
|
||||||
|
# with:
|
||||||
|
# token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
# headerLabel: "# 📑 Changelog"
|
||||||
|
# breakingLabel: "### 💥 Breaking"
|
||||||
|
# enhancementLabel: "### 🚀 Enhancements"
|
||||||
|
# bugsLabel: "### 🐛 Bug fixes"
|
||||||
|
# securityLabel: "### 🛡️ Security"
|
||||||
|
# issuesLabel: "### 📁 Other issues"
|
||||||
|
# prLabel: "### 📁 Other pull requests"
|
||||||
|
# addSections: '{"documentation":{"prefix":"### 📖 Documentation","labels":["documentation"]},"tests":{"prefix":"### ✅ Testing","labels":["tests"]}}'
|
||||||
|
# onlyLastTag: true
|
||||||
|
# issues: false
|
||||||
|
# issuesWoLabels: false
|
||||||
|
# pullRequests: true
|
||||||
|
# prWoLabels: true
|
||||||
|
# author: true
|
||||||
|
# unreleased: true
|
||||||
|
# compareLink: true
|
||||||
|
# stripGeneratorNotice: true
|
||||||
|
# verbose: true
|
||||||
|
|
||||||
|
- name: Download Artifacts
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
path: cli/bins
|
||||||
|
merge-multiple: true
|
||||||
|
|
||||||
|
- name: Release
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
tag_name: ${{ github.ref }}
|
||||||
|
name: Release ${{ github.ref_name }}
|
||||||
|
draft: false
|
||||||
|
fail_on_unmatched_files: true
|
||||||
|
# body: ${{ steps.changelog.outputs.changelog }}
|
||||||
|
files: cli/bins/*
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env -S v -n -w -gc none -no-retry-compilation -cc tcc -d use_openssl -enable-globals run
|
#!/usr/bin/env -S v -cc gcc -n -w -gc none -no-retry-compilation -d use_openssl -enable-globals run
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import flag
|
import flag
|
||||||
@@ -119,7 +119,7 @@ fn dotest(path string, base_dir string, mut cache TestCache) ! {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd := 'v -stats -enable-globals -n -w -gc none -no-retry-compilation -cc tcc test ${norm_path}'
|
cmd := 'v -stats -enable-globals -n -w -gc none -no-retry-compilation test ${norm_path}'
|
||||||
println(cmd)
|
println(cmd)
|
||||||
result := os.execute(cmd)
|
result := os.execute(cmd)
|
||||||
eprintln(result)
|
eprintln(result)
|
||||||
|
|||||||
Reference in New Issue
Block a user