Skip to content

Linux

Linux #1410

Workflow file for this run

name: Linux
on:
schedule:
- cron: '0 1 * * *'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
suffix: ['', '-glibc2.39', '-glibc2.31', '-glibc2.23', '-glibc2.19', '-glibc2.10', '-musl', '-musl1.1']
target: ['x86-64', 'x86', 'arm64']
exclude:
- {target: arm64,suffix: -glibc2.10}
- {suffix: -musl1.1,target: arm64}
- {suffix: -musl1.1,target: x86-64}
include:
# default lisp used is sbcl-bin/2.4.0
- lisp: 'sbcl-bin/2.4.0'
# suffix default image
- suffix: ''
image: 'glibc2.19'
- suffix: -glibc2.39
image: 'glibc2.39'
- suffix: -glibc2.31
image: 'glibc2.31'
- suffix: -glibc2.23
image: 'glibc2.23'
- suffix: -glibc2.19
image: 'glibc2.19'
- suffix: -glibc2.10
image: 'glibc2.10'
- suffix: -musl
image: 'musl1.2.2'
# set default docker platform and image suffix.
- target: x86-64
docker-platform: 'linux/amd64'
docker-image-suffix: ''
- target: x86
docker-platform: 'linux/amd64'
docker-image-suffix: ''
- target: arm64
docker-platform: 'linux/arm64'
docker-image-suffix: 'aarch64'
#- target: riscv64
# suffix: ''
# image: 'glibc2.31'
# docker-platform: 'linux/riscv64'
# docker-image-suffix: 'riscv64'
# with suffix x86-64
- target: x86-64
suffix: -glibc2.10
image: 'glibc2.10-64'
linkflags: -lrt
# with suffix x86
- target: x86
suffix: -glibc2.10
linkflags: -lrt
- target: x86
suffix: -musl
docker-platform: 'linux/386'
docker-build-options: '--build-arg WRAPPER=linux32'
docker-image-suffix: 'x86'
- target: x86
suffix: -musl1.1
image: 'musl1.1.24'
docker-platform: 'linux/386'
docker-build-options: '--build-arg WRAPPER=linux32'
docker-image-suffix: 'x86'
# with suffix arm64
environment: SET_VERSION
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
image: tonistiigi/binfmt:qemu-v8.1.5
- name: setenv
run: |
echo "$HOME/.roswell/bin" >> $GITHUB_PATH
echo "ROSWELL_BRANCH=release" >> $GITHUB_ENV
- name: checkenv
run: |
uname -s
uname -m
echo $ROSWELL_INSTALL_DIR
echo $ROSWELL_BRANCH
- name: Install Roswell
env:
LISP: ${{ matrix.lisp }}
run: |
curl -L https://raw.githubusercontent.com/roswell/roswell/master/scripts/install-for-ci.sh | sh
ros install snmsts/sn.github
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: docker.pkg.github.com
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: pull or build&push docker image
env:
DOCKER_PLATFORM: ${{ matrix.docker-platform }}
DOCKER_BUILD_OPTIONS: ${{ matrix.docker-build-options }}
DOCKER_IMAGE_SUFFIX: ${{ matrix.docker-image-suffix }}
IMAGE: ${{ matrix.image }}
run: |
if [ -n "$IMAGE" ]; then
make pull-docker || make build-docker push-docker
fi
- name: build & upload
env:
GITHUB_OAUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ secrets.VERSION }}
ARCH: ${{ matrix.target }}
IMAGE: ${{ matrix.image }}
SUFFIX: ${{ matrix.suffix }}
LINKFLAGS: ${{ matrix.linkflags }}
DOCKER_PLATFORM: ${{ matrix.docker-platform }}
DOCKER_IMAGE_SUFFIX: ${{ matrix.docker-image-suffix }}
run: |
if [ "$VERSION" = "" ]; then
make latest-version zstd sbcl docker upload-archive;
else
make zstd sbcl docker upload-archive;
fi