Skip to content

Commit

Permalink
Merge pull request #1 from duckdb/cifight2
Browse files Browse the repository at this point in the history
Re-adding CI
  • Loading branch information
hannes authored Apr 30, 2024
2 parents daaa993 + e14d7b2 commit f611ba6
Show file tree
Hide file tree
Showing 11 changed files with 956 additions and 19 deletions.
111 changes: 111 additions & 0 deletions .github/actions/manylinux_2014_setup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: "Setup manylinux2014 image"
description: "Installs/configures additional CI dependencies"
inputs:
aws-cli:
description: 'Setup aws-cli'
default: 0
ninja-build:
description: 'Setup ninja-build'
default: 0
vcpkg:
description: 'Setup vcpkg (installs to $GITHUB_WORKSPACE/vcpkg)'
default: 0
openssl:
description: 'Setup OpenSSL (requires vcpkg to also be installed)'
default: 0
ccache:
description: 'Setup Ccache'
default: 0
jdk:
description: 'Setup JDK'
default: 0
odbc:
description: 'Setup ODBC'
default: 0
ssh:
description: 'Setup SSH'
default: 0
glibc32:
description: 'Setup 32bit glibc'
default: 0
nodejs:
description: 'Setup NodeJS'
default: 0
gcc_4_8:
description: 'Setup GCC 4.8 (installs to /usr/bin/g++, default will still be GCC 10)'
default: 0
python_alias:
description: 'Create an alias for python3 to python3.9'
default: 0

runs:
using: "composite"
steps:
- name: Setup general dependencies
shell: bash
run: scripts/setup_manylinux2014.sh general

- name: Install AWS CLI
if: ${{ inputs.aws-cli == 1 }}
shell: bash
run: scripts/setup_manylinux2014.sh aws-cli

- name: Setup dependencies for ODBC
if: ${{ inputs.odbc == 1 }}
shell: bash
run: scripts/setup_manylinux2014.sh odbc

- name: Setup dependencies for ccache
if: ${{ inputs.ccache == 1 }}
shell: bash
run: scripts/setup_manylinux2014.sh ccache

- name: Setup JDK
if: ${{ inputs.jdk == 1 }}
shell: bash
run: scripts/setup_manylinux2014.sh jdk

- name: Setup SSH
if: ${{ inputs.ssh == 1 }}
shell: bash
run: scripts/setup_manylinux2014.sh ssh

- name: Setup NodeJS
if: ${{ inputs.nodejs == 1 }}
shell: bash
run: scripts/setup_manylinux2014.sh nodejs

- name: Setup 32bit compiler
if: ${{ inputs.glibc32 == 1 }}
shell: bash
run: scripts/setup_manylinux2014.sh glibc32

- name: Setup python3 as python3.9
if: ${{ inputs.python_alias == 1 }}
shell: bash
run: scripts/setup_manylinux2014.sh python_alias

- name: Setup old (GCC 4.8) compiler
if: ${{ inputs.gcc_4_8 == 1 }}
shell: bash
run: scripts/setup_manylinux2014.sh gcc_4_8

# Note instead of using scripts/setup_manylinux2014.sh vcpkg, we prefer to use
# lukka/[email protected] here as it configures vcpkg to cache to GH actions.
- name: Setup vcpkg
if: ${{ inputs.vcpkg == 1 }}
uses: lukka/[email protected]
with:
vcpkgGitCommitId: a1a1cbc975abf909a6c8985a6a2b8fe20bbd9bd6

- name: Install OpenSSL
if: ${{ inputs.openssl == 1 }}
shell: bash
run: scripts/setup_manylinux2014.sh openssl

- name: Setup Ccache
if: ${{ inputs.ccache == 1 }}
uses: hendrikmuhs/[email protected] # Note: pinned due to GLIBC incompatibility in later releases
with:
key: ${{ github.job }}
save: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb-java' }}
100 changes: 100 additions & 0 deletions .github/actions/ubuntu_18_setup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: "Setup Ubuntu 18"
description: "Setup an Ubuntu 18 docker container with the required libraries"
inputs:
openssl:
description: 'OpenSSL'
default: 0
python:
description: 'Python'
default: 1
aarch64_cross_compile:
description: 'Install dependencies for aarch64 cross-compiling'
default: 0
vcpkg:
description: 'Install vcpkg'
default: 0
ccache:
description: 'Install ccache'
default: 0

runs:
using: "composite"
steps:
- name: Install
shell: bash
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 pkg-config
- name: Install
shell: bash
if: ${{ inputs.aarch64_cross_compile == 1 }}
run: |
apt-get install -y -qq gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
- name: Install Git 2.18.5
shell: bash
run: |
wget https://github.com/git/git/archive/refs/tags/v2.18.5.tar.gz
tar xvf v2.18.5.tar.gz
cd git-2.18.5
make
make prefix=/usr install
git --version
- uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Install CMake 3.21
shell: bash
run: |
wget https://github.com/Kitware/CMake/releases/download/v3.21.3/cmake-3.21.3-linux-x86_64.sh
chmod +x cmake-3.21.3-linux-x86_64.sh
./cmake-3.21.3-linux-x86_64.sh --skip-license --prefix=/usr/local
cmake --version
- name: Install Python 3.8
if: ${{ inputs.python }} == 1
shell: bash
run: |
wget https://www.python.org/ftp/python/3.8.17/Python-3.8.17.tgz
tar xvf Python-3.8.17.tgz
cd Python-3.8.17
mkdir -p pythonbin
./configure --with-ensurepip=install
make -j
make install
python3.8 --version
python3.8 -m pip install pip
python3.8 -m pip install requests awscli
- name: Version Check
shell: bash
run: |
ldd --version ldd
python3 --version
git --version
git log -1 --format=%h
- name: Setup vcpkg
if: ${{ inputs.vcpkg == 1 }}
uses: lukka/[email protected]
with:
vcpkgGitCommitId: a1a1cbc975abf909a6c8985a6a2b8fe20bbd9bd6

- name: Setup Ccache
if: ${{ inputs.ccache == 1 }}
uses: hendrikmuhs/[email protected] # Note: pinned due to GLIBC incompatibility in later releases
with:
key: ${{ github.job }}
save: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb-java' }}

- name: Instal OpenSSL through vcpkg
if: ${{ inputs.openssl == 1 }}
shell: bash
run: |
cd $VCPKG_ROOT && ./vcpkg install openssl --triplet=${{ inputs.aarch64_cross_compile == 1 && 'arm64-linux' || 'x64-linux' }}
Loading

0 comments on commit f611ba6

Please sign in to comment.