diff --git a/.github/workflows/alpine_riscv64.yml b/.github/workflows/alpine_riscv64.yml new file mode 100644 index 0000000..236a384 --- /dev/null +++ b/.github/workflows/alpine_riscv64.yml @@ -0,0 +1,137 @@ +name: Alpine latest riscv64 + +on: [push, pull_request] + +jobs: + build_job: + # The host should always be linux + runs-on: ubuntu-22.04 + name: Build on ${{ matrix.distro }} ${{ matrix.arch }} + + strategy: + matrix: + include: + - arch: riscv64 + distro: alpine_latest + steps: + - uses: actions/checkout@v4 + - uses: uraimo/run-on-arch-action@v2.7.2 + name: Build + id: build + with: + arch: ${{ matrix.arch }} + distro: ${{ matrix.distro }} + + # Not required, but speeds up builds + githubToken: ${{ github.token }} + + # Create an artifacts directory + setup: | + mkdir -p "${PWD}/artifacts" + + # Mount the artifacts directory as /artifacts in the container + dockerRunArgs: | + --volume "${PWD}/artifacts:/artifacts" + + # Pass some environment variables to the container + env: | # YAML, but pipe character is necessary + artifact_name: git-${{ matrix.distro }}_${{ matrix.arch }} + + # The shell to run commands with in the container + shell: /bin/sh + + # Install some dependencies in the container. This speeds up builds if + # you are also using githubToken. Any dependencies installed here will + # be part of the container image that gets cached, so subsequent + # builds don't have to re-install them. The image layer is cached + # publicly in your project's package repository, so it is vital that + # no secrets are present in the container state or logs. + install: | + echo "-----------------------------------------------------" + echo "> uname -a" + uname -a + + echo "-----------------------------------------------------" + echo "> cat /etc/issue" + cat /etc/issue + + echo "-----------------------------------------------------" + echo "> apk update" + apk update + + echo "-----------------------------------------------------" + echo "> apk add git autoconf make gcc clang" + apk add git autoconf make gcc clang + + echo "-----------------------------------------------------" + echo "> autoconf --version" + autoconf --version + + echo "-----------------------------------------------------" + echo "> make -v" + make -v + + echo "-----------------------------------------------------" + echo "> gcc -v" + gcc -v + + echo "-----------------------------------------------------" + echo "> clang -v" + clang -v + + echo "-----------------------------------------------------" + echo "> git clone" + git clone https://github.com/alexander-naumov/gnu-screen.git + + echo "-----------------------------------------------------" + echo "> cd gnu-screen/src/" + cd gnu-screen/src + + echo "-----------------------------------------------------" + echo "> ./autogen.sh" + ./autogen.sh + + echo "-----------------------------------------------------" + echo "> cc=gcc ./configure CFLAGS='-Wall -DDEBUG'" + cc=gcc ./configure --disable-pam CFLAGS="-Wall -DDEBUG" + + echo "-----------------------------------------------------" + echo "> make" + make + + echo "-----------------------------------------------------" + echo "> ./screen -v" + ./screen -v + + echo "-----------------------------------------------------" + echo "> ./screen -ls" + ./screen -ls || echo $? + + echo "-----------------------------------------------------" + echo "> make clean" + make clean + + echo "-----------------------------------------------------" + echo "> cc=clang ./configure CFLAGS='-Wall -DDEBUG'" + cc=clang ./configure --disable-pam CFLAGS="-Wall -DDEBUG" + + echo "-----------------------------------------------------" + echo "> make" + make + + echo "-----------------------------------------------------" + echo "> ./screen -v" + ./screen -v + + echo "-----------------------------------------------------" + echo "> ./screen -ls" + ./screen -ls || echo $? + + echo "-----------------------------------------------------" + echo "> ./screen --help" + ./screen --help + + run: | + uname -a + cp $(which git) "/artifacts/${artifact_name}" + echo "Produced artifact at /artifacts/${artifact_name}"