Skip to content

Add pthread library to fix arm64 building #29

Add pthread library to fix arm64 building

Add pthread library to fix arm64 building #29

name: Deploy containers
on:
#release:
# types: [published]
workflow_dispatch:
push:
branches:
- "build-containers"
# Rembember: you have to escape characters like $ with \$.
env:
SETUP_BASE: |
apt-get -qq update > /dev/null;
apt-get -qq upgrade > /dev/null;
apt-get -qq install wget git > /dev/null;
useradd -ms /bin/bash pyompuser;
su pyompuser;
cd /home/pyompuser;
SETUP_MINICONDA: |
wget -q https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-\$(uname -m).sh -O miniconda.sh;
bash miniconda.sh -b -u -p ./miniconda3;
rm -rf miniconda.sh;
export PATH=/home/pyompuser/miniconda3/bin:\${PATH};
conda install -y -c conda-forge conda-build conda-verify anaconda-client;
conda config --set anaconda_upload yes;
SETUP_REPO: |
git clone https://github.com/Python-for-HPC/PyOMP;
cd PyOMP;
# TODO: remove this line when the project is ready for deployment
git switch build-containers;
#git checkout \$(git describe --abbrev=0 --tags);
export GITHUB_HEAD_SHA=\$(git rev-parse --short HEAD);
jobs:
#conda-deploy-llvm-openmp-dev-linux-arm64:
# name: llvm-openmp-dev linux-arm64
# runs-on: ubuntu-latest
# steps:
# - name: Set up QEMU
# uses: docker/setup-qemu-action@v3
# with:
# platforms: linux/arm64
# - name: Deploy llvm-openmp-dev
# run: |
# docker run --platform linux/arm64 ubuntu:22.04 /bin/bash -xel -c "
# ${{ env.SETUP_BASE }}
# ${{ env.SETUP_MINICONDA }}
# ${{ env.SETUP_REPO }}
# conda build --user python-for-hpc --label main \
# -c python-for-hpc -c conda-forge \
# --token ${{ secrets.ANACONDA_TOKEN }} \
# buildscripts/conda-recipes/llvm-openmp-dev;
# "
#conda-deploy-llvmlite-linux-arm64:
# needs: conda-deploy-llvm-openmp-dev-linux-arm64
# name: llvmlite linux-arm64
# runs-on: ubuntu-latest
# strategy:
# matrix:
# python-version: ["3.8", "3.9", "3.10"]
# steps:
# - name: Set up QEMU
# uses: docker/setup-qemu-action@v3
# with:
# platforms: linux/arm64
# - name: Deploy llvmlite
# run: |
# docker run --platform linux/arm64 ubuntu:22.04 /bin/bash -el -c "
# ${{ env.SETUP_BASE }}
# ${{ env.SETUP_MINICONDA }}
# ${{ env.SETUP_REPO }}
# conda build --user python-for-hpc --label main \
# -c python-for-hpc -c conda-forge \
# --python ${{ matrix.python-version}} --token ${{ secrets.ANACONDA_TOKEN }} \
# buildscripts/conda-recipes/llvmlite
# "
conda-deploy-numba-linux-arm64:
#needs: conda-deploy-llvmlite-linux-arm64
name: numba linux-arm64
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10"]
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/arm64
- name: Deploy numba
run: |
docker run --platform linux/arm64 ubuntu:22.04 /bin/bash -el -c "
${{ env.SETUP_BASE }}
${{ env.SETUP_MINICONDA }}
${{ env.SETUP_REPO }}
conda build --user python-for-hpc --label main \
-c python-for-hpc -c conda-forge \
--python ${{ matrix.python-version}} --token ${{ secrets.ANACONDA_TOKEN }} \
buildscripts/conda-recipes/numba;
"
conda-deploy-pyomp-linux-arm64:
needs: conda-deploy-numba-linux-arm64
name: pyomp linux-arm64
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/arm64
- name: Deploy pyomp
run: |
docker run --platform linux/arm64 ubuntu:22.04 /bin/bash -el -c "
${{ env.SETUP_BASE }}
${{ env.SETUP_MINICONDA }}
${{ env.SETUP_REPO }}
conda build --user python-for-hpc --label main \
-c python-for-hpc -c conda-forge \
--token ${{ secrets.ANACONDA_TOKEN }} \
buildscripts/conda-recipes/pyomp;
"
#create-containers:
# runs-on: ubuntu-latest
# steps:
# - name: Set up QEMU
# uses: docker/setup-qemu-action@v3
#
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
#
# - name: Login to GitHub Container Registry
# uses: docker/login-action@v3
# with:
# registry: ghcr.io
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
#
# - name: Build and push
# uses: docker/build-push-action@v6
# with:
# platforms: linux/amd64,linux/arm64
# file: buildscripts/containers/Dockerfile.terminal
# push: true
# tags: ghcr.io/python-for-hpc/pyomp:latest