[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 01/02: Update github actions
From: |
Mike Gran |
Subject: |
[Guile-commits] 01/02: Update github actions |
Date: |
Fri, 2 Jun 2023 01:12:48 -0400 (EDT) |
mike121 pushed a commit to branch main-patches
in repository guile.
commit 1b44cbdf2206056ef43f1e85f8644dbd4832b043
Author: Michael Gran <spk121@yahoo.com>
AuthorDate: Thu Jun 1 18:21:02 2023 -0700
Update github actions
---
.github/workflows/nightly_rebase.yml | 53 ++++++++++++++++++++
.github/workflows/ubuntu.yml | 60 +++++++++++++++++++++++
.github/workflows/windows-cygwin.yml | 78 +++++++++++++++++++++++++++++
.github/workflows/windows-mingw.yml | 88 +++++++++++++++++++++++++++++++++
.github/workflows/windows-native.yml | 95 ++++++++++++++++++++++++++++++++++++
5 files changed, 374 insertions(+)
diff --git a/.github/workflows/nightly_rebase.yml
b/.github/workflows/nightly_rebase.yml
new file mode 100644
index 000000000..529c051c6
--- /dev/null
+++ b/.github/workflows/nightly_rebase.yml
@@ -0,0 +1,53 @@
+
+name: Nightly Rebase
+
+on:
+ # 12:10 PDT
+ schedule:
+ - cron: "10 19 * * *"
+ # Allow manual triggering
+ workflow_dispatch:
+
+# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+permissions:
+ contents: write
+ pages: write
+ id-token: write
+
+# Allow only one concurrent deployment, skipping runs queued between the run
in-progress and latest queued.
+# Allow cancellation of in-progress runs.
+concurrency:
+ group: "nightly"
+ cancel-in-progress: true
+
+jobs:
+ fetch:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: env
+ run: export LANG=C.UTF-8 TERM=dumb VERBOSE=true
DEBIAN_FRONTEND=noninteractive TZ=America/Los_Angeles
+ - name: Hard reset main branch to upstream
+ run: |
+ set -x
+ #git config user.name "GitHub Actions Bot"
+ #git config user.email "<>"
+ git config user.name "${GITHUB_ACTOR}"
+ git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
+ git remote add upstream https://git.savannah.gnu.org/git/guile.git
+ git fetch upstream main
+ git remote -v
+ git checkout -B main
+ git config pull.rebase true
+ git reset --hard upstream/main || exit 1
+ git push --force origin main || exit 1
+ shell: bash {0}
+ - name: Rebase main-patches branch
+ run: |
+ git checkout main-patches
+ if ! (git rebase main) then
+ git rebase --abort
+ exit 1
+ fi
diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml
new file mode 100644
index 000000000..2407df049
--- /dev/null
+++ b/.github/workflows/ubuntu.yml
@@ -0,0 +1,60 @@
+name: Ubuntu 20.04 and 22.04
+
+on:
+ # 13:20 PDT
+ schedule:
+ - cron: "20 20 * * *"
+ # Allow manual triggering
+ workflow_dispatch:
+
+jobs:
+ build:
+ name: Build
+ strategy:
+ matrix:
+ os: [ubuntu-22.04, ubuntu-20.04]
+
+ runs-on: ${{ matrix.os }}
+
+ steps:
+ - uses: actions/checkout@v3
+ - name: env
+ run: export LANG=C.UTF-8 TERM=dumb VERBOSE=true
DEBIAN_FRONTEND=noninteractive TZ=America/Los_Angeles
+ - name: install packages
+ run: sudo apt-get install -y texlive autoconf libtool gettext autopoint
gperf pkg-config lzip libgc-dev libgmp-dev libltdl-dev libncurses5-dev
libreadline6-dev libunistring-dev
+ - name: make dist directory
+ run: mkdir `pwd`/dist
+ - name: bootstrap with autogen.sh
+ run: ./autogen.sh
+ - name: configure
+ run: ./configure CFLAGS="-g -O2 -Wall" --prefix=`pwd`/dist
+ - name: make
+ run: make
+ - name: make check
+ run: |
+ make check
+ if [ -f check-guile.log ]; then
+ cat check-guile.log
+ fi
+ shell: bash {0}
+ - name: make install
+ run: make install
+ - name: make dist
+ run: make dist
+ - name: Archive production artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: dist
+ path: dist
+ - name: Uncompress tarballs
+ run: gunzip *.tar.gz
+ - name: Archive tarball
+ uses: actions/upload-artifact@v3
+ with:
+ name: tarball
+ path: guile*tar
+ - name: Archive test logs
+ uses: actions/upload-artifact@v3
+ with:
+ name: logs
+ path: check-guile.log
diff --git a/.github/workflows/windows-cygwin.yml
b/.github/workflows/windows-cygwin.yml
new file mode 100644
index 000000000..ae708d537
--- /dev/null
+++ b/.github/workflows/windows-cygwin.yml
@@ -0,0 +1,78 @@
+name: Windows Cygwin
+
+on:
+ # 13:20 PDT
+ schedule:
+ - cron: "20 20 * * *"
+ # Allow manual triggering
+ workflow_dispatch:
+
+jobs:
+ build:
+ runs-on: windows-latest
+ name: Build
+
+ steps:
+ - run: git config --global core.autocrlf input
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 2
+ - name: Install cygwin
+ uses: cygwin/cygwin-install-action@master
+ with:
+ packages: >-
+ autoconf automake make libtool flex gperf
+ gcc-core
+ lzip xz
+ gettext-devel libffi-devel libgc-devel
+ libgmp-devel libreadline-devel libunistring-devel
+ libiconv-devel
+ - name: Bootstrap Guile
+ run: |
+ pwd
+ export LANG=C.UTF-8 TERM=dumb VERBOSE=true TZ=America/Los_Angeles
+ mkdir `pwd`/dist
+ ./autogen.sh
+ shell: C:\cygwin\bin\bash.exe -o igncr '{0}'
+ - name: Configure
+ run: ./configure CFLAGS="-g -O2 -Wall" --enable-jit=no --disable-lto
--prefix=`pwd`/dist
+ shell: C:\cygwin\bin\bash.exe -o igncr '{0}'
+ - name: Make
+ run: make V=1
+ shell: C:\cygwin\bin\bash.exe -o igncr '{0}'
+ - name: Upload broken build products
+ if: ${{ failure () }}
+ uses: actions/upload-artifact@v3
+ with:
+ name: Broken build products
+ path: .
+
+ - name: Run tests
+ run: make check V=1
+ shell: C:\cygwin\bin\bash.exe -o igncr '{0}'
+ - name: Archive test logs
+ if: ${{ success() || failure() }}
+ uses: actions/upload-artifact@v3
+ with:
+ name: Test logs
+ path: check-guile.log
+
+ - name: Install to folder
+ run: make install V=1
+ shell: C:\cygwin\bin\bash.exe -o igncr '{0}'
+ - name: Archive installed files
+ uses: actions/upload-artifact@v3
+ with:
+ name: Installed files
+ path: dist
+
+ - name: Make source tarball
+ run: |
+ make dist
+ gunzip *.tar.gz
+ shell: C:\cygwin\bin\bash.exe -o igncr '{0}'
+ - name: Archive source tarball
+ uses: actions/upload-artifact@v3
+ with:
+ name: Source tarball
+ path: guile*tar
diff --git a/.github/workflows/windows-mingw.yml
b/.github/workflows/windows-mingw.yml
new file mode 100644
index 000000000..b126daee9
--- /dev/null
+++ b/.github/workflows/windows-mingw.yml
@@ -0,0 +1,88 @@
+name: Windows MinGW
+
+on:
+ # 12:20 PDT
+ schedule:
+ - cron: "20 19 * * *"
+ # Allow manual triggering
+ workflow_dispatch:
+
+jobs:
+ build:
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - { sys: MINGW64, env: x86_64, threads: --without-threads, jit:
--enable-jit=no, gmp: --enable-mini-gmp }
+ - { sys: MINGW32, env: i686, threads: --without-threads, jit:
--enable-jit=no, gmp: --enable-mini-gmp }
+ - { sys: UCRT64, env: ucrt-x86_64, threads: --without-threads, jit:
--enable-jit=no, gmp: --enable-mini-gmp }
+ - { sys: CLANG64, env: clang-x86_64, threads: --without-threads,
jit: --enable-jit=no, gmp: --enable-mini-gmp }
+
+ runs-on: windows-latest
+ name: Build ${{matrix.sys}} ${{matrix.env}}
+
+ defaults:
+ run:
+ shell: msys2 {0}
+
+ steps:
+ - uses: msys2/setup-msys2@v2
+ with:
+ msystem: ${{matrix.sys}}
+ install: >-
+ base-devel
+ git
+ gperf
+ autotools
+ lzip
+ mingw-w64-${{matrix.env}}-toolchain
+ mingw-w64-${{matrix.env}}-gc
+ mingw-w64-${{matrix.env}}-libtool
+ mingw-w64-${{matrix.env}}-libunistring
+ - name: Set git CRLF behavior to Linux
+ run: git config --global core.autocrlf input
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - name: env
+ run: export LANG=C.UTF-8 TERM=dumb VERBOSE=true TZ=America/Los_Angeles
+ - name: make dist directory
+ run: mkdir `pwd`/dist
+ - name: check tools version
+ run: |
+ echo "CC=$CC"
+ echo "LD=$LD"
+ echo "MAKE=$MAKE"
+ - name: bootstrap with autogen.sh
+ run: ./autogen.sh
+ - name: configure
+ run: ./configure CFLAGS="-g -O2 -Wall" ${{matrix.threads}}
${{matrix.jit}} ${{matrix.gmp}} --prefix=`pwd`/dist
+ - name: make
+ run: make
+ - name: make check
+ run: |
+ make check
+ if [ -f check-guile.log ]; then
+ cat check-guile.log
+ fi
+ - name: make install
+ run: make install
+ - name: make dist
+ run: make dist
+ - name: Archive production artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: dist-${{matrix.sys}}-${{matrix.env}}
+ path: dist
+ - name: Uncompress tarballs
+ run: gunzip *.tar.gz
+ - name: Archive tarball
+ uses: actions/upload-artifact@v3
+ with:
+ name: tarball-${{matrix.sys}}-${{matrix.env}}
+ path: guile*tar
+ - name: Archive test logs
+ uses: actions/upload-artifact@v3
+ with:
+ name: logs-${{matrix.sys}}-${{matrix.env}}
+ path: check-guile.log
diff --git a/.github/workflows/windows-native.yml
b/.github/workflows/windows-native.yml
new file mode 100644
index 000000000..be772f809
--- /dev/null
+++ b/.github/workflows/windows-native.yml
@@ -0,0 +1,95 @@
+name: Windows Native w/ Msys2 Shell
+
+on:
+ workflow_dispatch:
+
+jobs:
+ build:
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - { sys: UCRT64, env: ucrt-x86_64, threads: --without-threads, jit:
--enable-jit=no, gmp: --enable-mini-gmp }
+
+ runs-on: windows-latest
+ name: Build Native with ${{matrix.sys}} ${{matrix.env}}
+
+ defaults:
+ run:
+ shell: msys2 {0}
+
+ steps:
+ - name: Set up msvc
+ uses: ilammy/msvc-dev-cmd@v1
+ - uses: msys2/setup-msys2@v2
+ with:
+ msystem: ${{matrix.sys}}
+ install: >-
+ base-devel
+ git
+ gperf
+ autotools
+ lzip
+ mingw-w64-${{matrix.env}}-toolchain
+ mingw-w64-${{matrix.env}}-gc
+ mingw-w64-${{matrix.env}}-libtool
+ mingw-w64-${{matrix.env}}-libunistring
+ - name: Set git CRLF behavior to Linux
+ run: git config --global core.autocrlf input
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - name: env
+ run: export LANG=C.UTF-8 TERM=dumb VERBOSE=true TZ=America/Los_Angeles
+ shell: msys2 {0}
+ - name: make dist directory
+ run: mkdir `pwd`/dist
+ shell: msys2 {0}
+ - name: check tools version
+ run: |
+ CC=cl
+ LD=link
+ echo "CC=$CC"
+ echo "LD=$LD"
+ echo "MAKE=$MAKE"
+ shell: msys2 {0}
+ - name: bootstrap with autogen.sh
+ run: ./autogen.sh
+ shell: msys2 {0}
+ - name: configure
+ run: ./configure CC=cl LD=link CFLAGS="-g -O2 -Wall"
${{matrix.threads}} ${{matrix.jit}} ${{matrix.gmp}} --prefix=`pwd`/dist
+ shell: msys2 {0}
+ - name: make
+ run: make
+ shell: msys2 {0}
+ - name: make check
+ run: |
+ make check
+ if [ -f check-guile.log ]; then
+ cat check-guile.log
+ fi
+ shell: msys2 {0}
+ - name: make install
+ run: make install
+ shell: msys2 {0}
+ - name: make dist
+ run: make dist
+ shell: msys2 {0}
+ - name: Archive production artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: dist-${{matrix.sys}}-${{matrix.env}}
+ path: dist
+ - name: Uncompress tarballs
+ run: gunzip *.tar.gz
+ shell: msys2 {0}
+ - name: Archive tarball
+ uses: actions/upload-artifact@v3
+ with:
+ name: tarball-${{matrix.sys}}-${{matrix.env}}
+ path: guile*tar
+ - name: Archive test logs
+ uses: actions/upload-artifact@v3
+ with:
+ name: logs-${{matrix.sys}}-${{matrix.env}}
+ path: check-guile.log