Skip to content
This repository has been archived by the owner on Mar 17, 2024. It is now read-only.

Merge pull request #6 from Kayrnt/c++_is_back #51

Merge pull request #6 from Kayrnt/c++_is_back

Merge pull request #6 from Kayrnt/c++_is_back #51

Workflow file for this run

name: Linux
on: [push, pull_request,repository_dispatch]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}-${{ github.ref != 'refs/heads/main' || github.sha }}
cancel-in-progress: true
defaults:
run:
shell: bash
jobs:
linux:
name: Linux Release
runs-on: ubuntu-latest
container: ${{ matrix.container }}
strategy:
matrix:
# Add commits/tags to build against other DuckDB versions
duckdb_version: [ '<submodule_version>' ]
# 'linux_amd64', 'linux_amd64_gcc4'
arch: ['linux_arm64']
vcpkg_version: [ '2023.04.15' ]
include:
# - arch: 'linux_amd64_gcc4'
# container: 'quay.io/pypa/manylinux2014_x86_64'
# vcpkg_triplet: 'x64-linux'
# - arch: 'linux_amd64'
# container: 'ubuntu:18.04'
# vcpkg_triplet: 'x64-linux'
- arch: 'linux_arm64'
container: 'ubuntu:22.04'
vcpkg_triplet: 'arm64-linux'
env:
VCPKG_TARGET_TRIPLET: ${{ matrix.vcpkg_triplet }}
VCPKG_TOOLCHAIN_PATH: ${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake
steps:
- name: Install git
if: ${{ matrix.arch == 'linux_amd64' || matrix.arch == 'linux_arm64' }}
run: |
apt-get update -y -qq
apt-get install -y -qq software-properties-common
apt-get install -y -qq git
- name: Check out repository code
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Print working directory
run: |
echo "Working directory: $PWD"
ls -a
- name: Install required ubuntu packages
if: ${{ matrix.arch == 'linux_amd64' || matrix.arch == 'linux_arm64' }}
run: |
apt-get update -y -qq
apt-get install -y -qq software-properties-common
add-apt-repository ppa:git-core/ppa
apt-get update -y -qq
apt-get install -y -qq ninja-build make gcc-multilib g++-multilib libssl-dev\
wget openjdk-8-jdk zip maven unixodbc-dev libc6-dev-i386 lib32readline6-dev\
libssl-dev libcurl4-gnutls-dev libexpat1-dev gettext unzip build-essential\
checkinstall libffi-dev curl libz-dev openssh-client libboost-all-dev\
libmysqlclient-dev libssl-dev
apt-get install -y -qq tar pkg-config
- name: Checkout DuckDB to version
if: ${{ matrix.duckdb_version != '<submodule_version>'}}
run: |
cd duckdb
git checkout ${{ matrix.duckdb_version }}
# - name: Setup ManyLinux2014
# if: ${{ matrix.arch == 'linux_amd64_gcc4' }}
# run: |
# ./duckdb/scripts/setup_manylinux2014.sh general aws-cli ccache ssh openssl python_alias
- name: Setup Ubuntu
if: ${{ matrix.arch == 'linux_amd64' || matrix.arch == 'linux_arm64' }}
uses: ./duckdb/.github/actions/ubuntu_18_setup
with:
aarch64_cross_compile: 1
- name: Install latest cmake
uses: lukka/get-cmake@latest
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: 501db0f17ef6df184fcdbfbe0f87cde2313b6ab1
- name: Build mysql
run: |
cd mysql-connector-cpp
cmake . -DBUILD_STATIC=ON -DWITH_JDBC=ON -DWITH_MYSQL=/opt/homebrew/opt/mysql-client
cmake --build . --config Release
# - name: Install mysql (amd64_gcc4)
# if: ${{ matrix.arch == 'linux_amd64_gcc4' }}
# run: |
# yum install -y sudo
# yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# yum install -y mysql-community-server
# - name: Setup Mysql
# if: ${{ matrix.arch == 'linux_amd64_gcc4' }}
# run: |
# mkdir mysql_data
# chown mysql pgdata
# sudo -u mysql mysqld --initialize-insecure --user=mysql --datadir=/mysql_data
# sleep 5
# sudo -u mysql createuser -s root
# createdb
# mysql -c "SELECT 42"
- name: Build extension
env:
GEN: ninja
STATIC_LIBCPP: 1
CC: ${{ matrix.arch == 'linux_arm64' && 'aarch64-linux-gnu-gcc' || '' }}
CXX: ${{ matrix.arch == 'linux_arm64' && 'aarch64-linux-gnu-g++' || '' }}
run: |
make release
# - name: Test extension
# if: ${{ matrix.arch == 'linux_amd64_gcc4' }}
# run: |
# mysql -c "SELECT 43"
# source ./create-mysql-tables.sh
# make test_release
- uses: actions/upload-artifact@v2
with:
name: ${{matrix.arch}}-extensions
path: |
build/release/extension/mysql_scanner/mysql_scanner.duckdb_extension