Skip to content

Linux

Linux #666

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:
include:
- comment: "no suffix glibc2.19 amd64"
target: x86-64
lisp: 'sbcl-bin/2.0.0'
cc: 'cc -std=gnu99'
image: 'glibc2.19'
docker-platform: 'linux/amd64'
docker-image-suffix: ''
- comment: "no suffix glibc2.19 x86"
target: x86
lisp: sbcl-bin/2.0.0
cc: 'cc -m32 -std=gnu99'
image: 'glibc2.19'
docker-platform: 'linux/amd64'
docker-image-suffix: ''
- comment: "no suffix glibc2.19 arm64"
target: arm64
lisp: 'sbcl-bin/2.0.0'
cc: 'cc -std=gnu99'
image: 'glibc2.19'
docker-platform: 'linux/arm64'
docker-image-suffix: 'aarch64'
- comment: "no suffix glibc2.31 riscv64"
target: riscv64
lisp: 'sbcl-bin/2.0.0'
image: 'glibc2.31'
docker-platform: 'linux/riscv64'
docker-image-suffix: 'riscv64'
- comment: "no suffix glibc2.19 ppc64le"
target: ppc64le
lisp: 'sbcl-bin/2.0.0'
cc: 'cc -std=gnu99'
image: 'glibc2.19'
docker-platform: 'linux/ppc64le'
docker-image-suffix: 'ppc64le'
- comment: "no suffix glibc2.19 armv7"
target: armhf
lisp: 'sbcl-bin/2.0.0'
cc: 'cc -std=gnu99'
image: 'glibc2.19'
docker-platform: 'linux/arm/v7'
docker-image-suffix: 'armv7'
#with suffix below. x86-64
- suffix: -glibc2.31
target: x86-64
lisp: sbcl-bin/2.0.0
cc: cc
image: 'glibc2.31'
docker-platform: 'linux/amd64'
- suffix: -glibc2.19
target: x86-64
lisp: 'sbcl-bin/2.0.0'
cc: 'cc -std=gnu99'
image: 'glibc2.19'
docker-platform: 'linux/amd64'
- suffix: -musl
target: x86-64
lisp: sbcl-bin/2.0.0
cc: cc
image: 'musl1.2.2'
docker-platform: 'linux/amd64'
- suffix: -static
target: x86-64
clispldflags: '--static -static-libgcc -static-libstdc++ -static'
lisp: sbcl-bin/2.0.0
cc: cc
image: 'musl1.2.2'
docker-platform: 'linux/amd64'
# with suffix x86
- suffix: -glibc2.31
target: x86
lisp: sbcl-bin/2.0.0
cc: 'cc -m32'
image: 'glibc2.31'
docker-platform: 'linux/amd64'
- suffix: -glibc2.19
target: x86
lisp: sbcl-bin/2.0.0
cc: 'cc -m32 -std=gnu99'
image: 'glibc2.19'
docker-platform: 'linux/amd64'
- suffix: -musl
target: x86
lisp: sbcl-bin/2.0.0
cc: 'cc -m32'
image: 'musl1.2.2'
docker-platform: 'linux/386'
docker-build-options: '--build-arg WRAPPER=linux32'
docker-image-suffix: 'x86'
- suffix: -static
target: x86
clispldflags: '--static -static-libgcc -static-libstdc++ -static'
lisp: sbcl-bin/2.0.0
cc: 'cc -m32'
image: 'musl1.2.2'
docker-platform: 'linux/386'
docker-build-options: '--build-arg WRAPPER=linux32'
docker-image-suffix: 'x86'
- suffix: -musl1.1
target: x86
lisp: sbcl-bin/2.0.0
cc: cc
image: 'musl1.1.24'
docker-platform: 'linux/386'
docker-build-options: '--build-arg WRAPPER=linux32'
docker-image-suffix: 'x86'
# with suffix arm64
- suffix: -glibc2.31
target: arm64
lisp: sbcl-bin/2.2.0
cc: cc
image: 'glibc2.31'
docker-platform: 'linux/arm64'
docker-image-suffix: 'aarch64'
- suffix: -glibc2.19
target: arm64
lisp: sbcl-bin/2.2.0
cc: 'cc -std=gnu99'
image: 'glibc2.19'
docker-platform: 'linux/arm64'
docker-image-suffix: 'aarch64'
- suffix: -musl
target: arm64
lisp: sbcl-bin/2.0.0
cc: cc
image: 'musl1.2.2'
docker-platform: 'linux/arm64'
docker-image-suffix: 'aarch64'
- suffix: -static
target: arm64
clispldflags: '--static -static-libgcc -static-libstdc++ -static'
lisp: sbcl-bin/2.0.0
cc: cc
image: 'musl1.2.2'
docker-platform: 'linux/arm64'
docker-image-suffix: 'aarch64'
# with suffix riscv64
- suffix: -glibc2.31
target: riscv64
lisp: 'sbcl-bin/2.0.0'
image: 'glibc2.31'
docker-platform: 'linux/riscv64'
docker-image-suffix: 'riscv64'
- suffix: -musl
target: riscv64
lisp: sbcl-bin/2.0.0
cc: cc
image: 'musl1.2.5'
docker-platform: 'linux/riscv64'
docker-image-suffix: 'riscv64'
- suffix: -static
target: riscv64
clispldflags: '--static -static-libgcc -static-libstdc++ -static'
lisp: sbcl-bin/2.0.0
cc: cc
image: 'musl1.2.5'
docker-platform: 'linux/riscv64'
docker-image-suffix: 'riscv64'
#with suffix below. ppc64le
- suffix: -glibc2.19
target: ppc64le
lisp: 'sbcl-bin/2.0.0'
cc: 'cc -std=gnu99'
image: 'glibc2.19'
docker-platform: 'linux/ppc64le'
docker-image-suffix: 'ppc64le'
- suffix: -glibc2.31
target: ppc64le
lisp: 'sbcl-bin/2.0.0'
image: 'glibc2.31'
docker-platform: 'linux/ppc64le'
docker-image-suffix: 'ppc64le'
- suffix: -musl
target: ppc64le
lisp: sbcl-bin/2.0.0
cc: cc
image: 'musl1.2.5'
docker-platform: 'linux/ppc64le'
docker-image-suffix: 'ppc64le'
- suffix: -static
target: ppc64le
clispldflags: '--static -static-libgcc -static-libstdc++ -static'
lisp: sbcl-bin/2.0.0
cc: cc
image: 'musl1.2.5'
docker-platform: 'linux/ppc64le'
docker-image-suffix: 'ppc64le'
#with suffix below. armhf
- suffix: -glibc2.19
target: armhf
lisp: 'sbcl-bin/2.0.0'
cc: 'cc -std=gnu99'
image: 'glibc2.19'
docker-platform: 'linux/arm/v7'
docker-image-suffix: 'armv7'
- suffix: -glibc2.31
target: armhf
lisp: 'sbcl-bin/2.0.0'
image: 'glibc2.31'
docker-platform: 'linux/arm/v7'
docker-image-suffix: 'armv7'
- suffix: -musl
target: armhf
lisp: sbcl-bin/2.0.0
cc: cc
image: 'musl1.2.5'
docker-platform: 'linux/arm/v7'
docker-image-suffix: 'armv7'
- suffix: -static
target: armhf
clispldflags: '--static -static-libgcc -static-libstdc++ -static'
lisp: sbcl-bin/2.0.0
cc: cc
image: 'musl1.2.5'
docker-platform: 'linux/arm/v7'
docker-image-suffix: 'armv7'
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/release/scripts/install-for-ci.sh | sh
ros install snmsts/sn.github roswell/sbcl_bin
- name: check uploaded
id: check_uploaded
env:
VERSION: ${{ secrets.VERSION }}
CPU: ${{ matrix.target }}
OS: linux
VARIANT: ${{ matrix.suffix }}
run: make latest-version upload-archive-p
continue-on-error: true
- name: Login to GitHub Container Registry
if: steps.check_uploaded.outcome == 'failure'
uses: docker/login-action@v3
with:
registry: docker.pkg.github.com
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: pull docker image
if: steps.check_uploaded.outcome == 'failure'
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
if: steps.check_uploaded.outcome == 'failure'
env:
VERSION: ${{ secrets.VERSION }}
CPU: ${{ matrix.target }}
OS: linux
IMAGE: ${{ matrix.image }}
VARIANT: ${{ matrix.suffix }}
LINKFLAGS: ${{ matrix.linkflags }}
CLISP_LDFLAGS: ${{ matrix.clispldflags }}
CC: ${{ matrix.cc }}
DOCKER_PLATFORM: ${{ matrix.docker-platform }}
DOCKER_IMAGE_SUFFIX: ${{ matrix.docker-image-suffix }}
run: |
make latest-version docker
- name: upload
if: steps.check_uploaded.outcome == 'failure'
env:
GITHUB_OAUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ secrets.VERSION }}
CPU: ${{ matrix.target }}
VARIANT: ${{ matrix.suffix }}
run: |
env FILE=`ls *.bz2` make latest-version upload-archive;