Linux #745
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.4.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.4.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.4.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.4.0 | |
image: 'glibc2.31' | |
docker-platform: 'linux/riscv64' | |
docker-image-suffix: 'riscv64' | |
- comment: "no suffix glibc2.19 ppc64le" | |
target: ppc64le | |
lisp: sbcl-bin/2.4.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.4.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.4.0 | |
cc: cc | |
image: 'glibc2.31' | |
docker-platform: 'linux/amd64' | |
- suffix: -glibc2.19 | |
target: x86-64 | |
lisp: sbcl-bin/2.4.0 | |
cc: 'cc -std=gnu99' | |
image: 'glibc2.19' | |
docker-platform: 'linux/amd64' | |
- suffix: -musl | |
target: x86-64 | |
lisp: sbcl-bin/2.4.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.4.0 | |
cc: cc | |
image: 'musl1.2.2' | |
docker-platform: 'linux/amd64' | |
# with suffix x86 | |
- suffix: -glibc2.31 | |
target: x86 | |
lisp: sbcl-bin/2.4.0 | |
cc: 'cc -m32' | |
image: 'glibc2.31' | |
docker-platform: 'linux/amd64' | |
- suffix: -glibc2.19 | |
target: x86 | |
lisp: sbcl-bin/2.4.0 | |
cc: 'cc -m32 -std=gnu99' | |
image: 'glibc2.19' | |
docker-platform: 'linux/amd64' | |
- suffix: -musl | |
target: x86 | |
lisp: sbcl-bin/2.4.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.4.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.4.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.4.0 | |
cc: cc | |
image: 'glibc2.31' | |
docker-platform: 'linux/arm64' | |
docker-image-suffix: 'aarch64' | |
- suffix: -glibc2.19 | |
target: arm64 | |
lisp: sbcl-bin/2.4.0 | |
cc: 'cc -std=gnu99' | |
image: 'glibc2.19' | |
docker-platform: 'linux/arm64' | |
docker-image-suffix: 'aarch64' | |
- suffix: -musl | |
target: arm64 | |
lisp: sbcl-bin/2.4.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.4.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.4.0 | |
image: 'glibc2.31' | |
docker-platform: 'linux/riscv64' | |
docker-image-suffix: 'riscv64' | |
- suffix: -musl | |
target: riscv64 | |
lisp: sbcl-bin/2.4.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.4.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.4.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.4.0 | |
image: 'glibc2.31' | |
docker-platform: 'linux/ppc64le' | |
docker-image-suffix: 'ppc64le' | |
- suffix: -musl | |
target: ppc64le | |
lisp: sbcl-bin/2.4.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.4.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.4.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.4.0 | |
image: 'glibc2.31' | |
docker-platform: 'linux/arm/v7' | |
docker-image-suffix: 'armv7' | |
- suffix: -musl | |
target: armhf | |
lisp: sbcl-bin/2.4.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.4.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: | | |
ls *.bz2 *.gz | |
env FILE=`ls *.bz2` make latest-version upload-archive; | |
env FILE=`ls clisp*.gz` make latest-version upload-archive; |