Skip to content

Releases Life and DogeOS packages. #66

Releases Life and DogeOS packages.

Releases Life and DogeOS packages. #66

Workflow file for this run

# SPDX-License-Identifier: AGPL-3.0
#
# release.yaml
#
# ------------------------------------------------------------
# Copyright © 2024, 2025
# 2026 Guilherme Janczak,
# Robert Kirkman,
# Pellegrino Prevete
#
# All rights reserved
# ------------------------------------------------------------
#
# This program is free software: you can redistribute it
# and/or modify it under the terms of the GNU Affero
# General Public License as published by the Free Software
# Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero
# General Public License along with this program.
# If not, see <https://www.gnu.org/licenses/>.
name:
release-build
run-name:
Releases Life and DogeOS packages.
permissions:
contents:
write
on:
release:
types:
[published]
jobs:
# This is what is currently necessary to make termux-docker work with GHA.
termux_release:
name:
Life and DogeOS Android base (Termux) binary packages.
strategy:
matrix:
include:
- runner:
ubuntu-24.04-arm
platform:
android
platform_target:
termux
architecture:
aarch64
- runner:
ubuntu-24.04
platform:
android
platform_target:
termux
architecture:
i686
- runner:
ubuntu-24.04-arm
platform:
android
platform_target:
termux
architecture:
arm
- runner:
ubuntu-24.04
platform:
android
platform_target:
termux
architecture:
x86_64
runs-on:
${{ matrix.runner }}
# prepare writable volume prefix mount for actions/upload-artifact,
# based on the higher-profile workaround for 32-bit GNU/Linux containers explained here
# https://github.com/actions/upload-artifact/issues/616#issuecomment-2350667347
container:
image:
termux/termux-docker:${{ matrix.architecture }}
volumes:
- /tmp/node20:/__e/node20
# approximate environment variables for actions that can't be forced to use entrypoint.sh
env:
GH_TOKEN:
${{ github.token }}
GITHUB_TOKEN:
${{ github.token }}
TERMUX_MAIN_PACKAGE_FORMAT:
debian
TERMUX_VERSION:
50
ANDROID_ROOT:
/system
ANDROID_DATA:
/data
PREFIX:
/data/data/com.termux/files/usr
HOME:
/data/data/com.termux/files/home
PATH:
/data/data/com.termux/files/usr/bin
TMPDIR:
/data/data/com.termux/files/usr/tmp
LANG:
en_US.UTF-8
TZ:
UTC
steps:
- name:
Set 'pkg' command to use the packages-cf.termux.dev mirror.
run: |
ln \
-sf \
"${PREFIX}/etc/termux/mirrors/default" \
"${PREFIX}/etc/termux/chosen_mirrors"
- name:
Upgrade Termux debian environment.
run: |
/entrypoint.sh \
bash \
-c \
"yes | pkg upgrade -y"
# actions/checkout will "think" that termux's tar binary isn't executable if it doesn't have
# executable bit actually set for all users, since even though that permissions restriction
# doesn't actually apply to the root user (at least on Android), GitHub Actions' internal
# source code doesn't "care" and would refuse to run the binary anyway.
# relevant internal source code of GitHub Actions:
# https://github.com/actions/toolkit/blob/930c89072712a3aac52d74b23338f00bb0cfcb24/packages/io/src/io-util.ts#L167-L177
- name:
Fixes executable bit for all binaries in "${PREFIX}/bin" for all users.
run: |
chmod \
-R \
"o+x" \
"${PREFIX}/bin"
- name:
Installs bionic-libc NodeJS to force compatibility with actions/checkout and actions/upload-artifact.
run: |
/entrypoint.sh \
pkg \
install \
-y \
"nodejs-lts"
ln \
-sf \
"${PREFIX}/bin" \
"/__e/node20/bin"
- uses:
actions/checkout@v4.2.2
- name:
Fixes permissions of repository after actions/checkout, which ran as root user, while entrypoint.sh activates system user (1000).
run: |
chown \
-R \
"1000:1000" \
"${PWD}"
- name:
Setup user's home.
run: |
# Setup home
/entrypoint.sh \
mkdir \
-p \
"${HOME}"
- name:
Installs Python.
run: |
/entrypoint.sh \
pkg \
install \
-y \
"python"
/entrypoint.sh \
pkg \
install \
-y \
"python-pip"
/entrypoint.sh \
pip \
install \
"build"
/entrypoint.sh \
pip \
install \
"installer"
/entrypoint.sh \
pip \
install \
"setuptools"
/entrypoint.sh \
pip \
install \
"flit-core"
/entrypoint.sh \
pip \
install \
"cython"
/entrypoint.sh \
pip \
install \
"multidict"
# - name:
# Installs Rust.
# run: |
# env
# _arch="$( \
# uname \
# -m)" \
# export \
# _arch="$( \
# uname \
# -m)" && \
# /entrypoint.sh \
# echo \
# "Architecture: ${_arch}" && \
# if [[ "$(uname -m)" == "armv7l" || \
# "$(uname -m)" == "armv8l" ]]; then \
# _rust="rust-std-armv7-linux-androideabi" \
# fi \
# if [[ "${RUNNER_ARCH}" == "X64" ]]; then \
# _rust="rust" && \
# export \
# _rust="${_rust}" \
# fi \
# if [[ "$(uname -m)" == "i686" || \
# "$(uname -m)" == "aarch64" ]]; then \
# _rust="rust" && \
# export \
# _rust="${_rust}" \
# fi && \
# /entrypoint.sh \
# apt \
# install \
# -y \
# "rust" \
# "rust-std-armv7-linux-androideabi"
- name:
Installs Git.
run: |
/entrypoint.sh \
pkg \
install \
-y \
"gh" \
"git" \
"jq" \
"tree" \
"which" \
"unzip"
# - name:
# Installs Capnproto.
# run: |
# /entrypoint.sh \
# pkg \
# install \
# -y \
# "capnproto"
- name:
Installs Pacman.
run: |
/entrypoint.sh \
pkg \
install \
-y \
"pacman" \
"termux-keyring" \
"tree" \
"tsu"
# Init keyring
/entrypoint.sh \
pacman-key \
--init
- name:
Installs 'build essential' ahah.
run: |
/entrypoint.sh \
pkg \
install \
-y \
binutils \
bsdtar \
file \
build-essential
- name:
Install docutils.
run: |
/entrypoint.sh \
pip \
install \
"docutils"
- name:
Installs make.
run: |
/entrypoint.sh \
pkg \
install \
-y \
"make"
- name:
Installs meson.
run: |
/entrypoint.sh \
pip \
install \
"meson"
- name:
Installs Crash Bash Library.
run: |
/entrypoint.sh git \
clone \
--branch="libcrash-bash" \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/fur" \
"${HOME}/fur"
/entrypoint.sh \
rm \
"${HOME}/fur/termux/any/"*".pkg.tar."*".sig"
/entrypoint.sh \
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/termux/any/"*".pkg.tar."*
/entrypoint.sh \
rm \
-rf \
"${HOME}/fur"
- name:
Installs Fur.
run: |
/entrypoint.sh \
git \
clone \
--branch="fur" \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/fur" \
"${HOME}/fur" || \
true
/entrypoint.sh \
rm \
-rf \
"${HOME}/fur/termux/any/"*".pkg.tar."*".sig"
/entrypoint.sh \
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/termux/any/"*".pkg.tar."*
/entrypoint.sh \
rm \
-rf \
"${HOME}/fur"
/entrypoint.sh \
pacman \
-Ql \
"fur"
/entrypoint.sh \
pkg \
install \
-y \
"coreutils" || \
true
cat \
"/entrypoint.sh"
export \
LD_PRELOAD="/data/data/com.termux/files/usr/lib/libtermux-exec.so" \
SHELL="/data/data/com.termux/files/usr/bin/bash"; \
/entrypoint.sh \
termux-fix-shebang \
"/data/data/com.termux/files/usr/bin/fur"; \
/entrypoint.sh \
bash \
-c \
"exec fur -v -h"
- name:
Installs Python Pygments.
run: |
/entrypoint.sh \
pip \
-v \
install \
"pygments"
- name:
Installs latest Crash Bash Library.
run: |
/entrypoint.sh \
git \
clone \
"https://github.com/themartiancompany/crash-bash" \
"${HOME}/crash-bash"
cd \
"${HOME}/crash-bash"
/entrypoint.sh \
mkdir \
-p \
"/data/data/com.termux/files/usr/lib/libcrash-bash"
/entrypoint.sh \
make \
-C \
"${HOME}/crash-bash" \
DESTDIR="/data/data/com.termux/files" \
PREFIX="/usr" \
install
- name:
Installs latest Reallymakepkg.
run: |
/entrypoint.sh \
pacman \
-Rdd \
--noconfirm \
"reallymakepkg" || \
true
/entrypoint.sh \
git \
clone \
"https://github.com/themartiancompany/reallymakepkg" \
"${HOME}/reallymakepkg-src" || \
true
/entrypoint.sh \
make \
DESTDIR="/data/data/com.termux/files" \
PREFIX="/usr" \
-C \
"${HOME}/reallymakepkg-src" \
install-scripts
/entrypoint.sh \
termux-fix-shebang \
"$(which \
"reallymakepkg")"; \
/entrypoint.sh \
termux-fix-shebang \
"$(which \
"recipe-get")"; \
/entrypoint.sh \
termux-fix-shebang \
"$(which \
"platform-get")"; \
/entrypoint.sh \
termux-fix-shebang \
"$(which \
"package-info-get")"; \
/entrypoint.sh \
termux-fix-shebang \
"$(which \
"version-split")"; \
/entrypoint.sh \
make \
DESTDIR="/data/data/com.termux/files" \
PREFIX="/usr" \
-C \
"${HOME}/reallymakepkg-src" \
install-configs || \
true
/entrypoint.sh \
install \
-vDm644 \
"${HOME}/reallymakepkg-src/configs/makepkg.android.conf" \
"/data/data/com.termux/files/usr/etc/reallymakepkg/makepkg.android.conf"
/entrypoint.sh \
pkg \
install \
-y \
binutils \
bsdtar \
file \
build-essential
- name:
Installs latest gl-dl.
run: |
/entrypoint.sh \
git \
clone \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/gl-dl" \
"${HOME}/gl-dl-src" || \
true
cd \
"${HOME}/gl-dl-src"
/entrypoint.sh \
make \
DESTDIR="/data/data/com.termux/files" \
PREFIX="/usr" \
install-scripts
/entrypoint.sh \
termux-fix-shebang \
"$(which \
"gl-dl")"; \
/entrypoint.sh \
gl-dl \
-v \
-h
- name:
Installs make.
run: |
/entrypoint.sh \
pkg \
install \
-y \
"make"
- name:
Installs LibEVM.
run: |
/entrypoint.sh \
fur \
-v \
-p \
"pacman" \
-d \
"libevm"
/entrypoint.sh \
rm \
-rf \
"${HOME}/fur/termux/any/"*".pkg.tar."*".sig"
/entrypoint.sh \
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/termux/any/"*".pkg.tar."*
/entrypoint.sh \
rm \
-rf \
"${HOME}/fur"
- name:
Installs latest EVM GNUPG.
run: |
/entrypoint.sh \
git \
clone \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/evm-gnupg" \
"${HOME}/evm-gnupg-src" || \
true
cd \
"${HOME}/evm-gnupg-src"; \
/entrypoint.sh \
make \
-C \
"${HOME}/evm-gnupg-src" \
DESTDIR="/data/data/com.termux/files" \
PREFIX="/usr" \
install-scripts
/entrypoint.sh \
termux-fix-shebang \
"$(which \
"evm-gpg")"; \
- name:
Installs latest Gur.
run: |
/entrypoint.sh \
pkg \
install \
-y \
"gh"
/entrypoint.sh \
git \
clone \
--branch="master" \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/gur" \
"${HOME}/gur-src" || \
true
cd \
"${HOME}/gur-src"; \
/entrypoint.sh \
make \
-C \
"${HOME}/gur-src" \
DESTDIR="/data/data/com.termux/files" \
PREFIX="/usr" \
install-scripts
/entrypoint.sh \
termux-fix-shebang \
"$(which \
"gur")"; \
- name:
Installs latest Fur.
run: |
/entrypoint.sh \
git \
clone \
--branch="main" \
--single-branch \
"https://github.com/themartiancompany/fur" \
"${HOME}/fur-src" || \
true
# /entrypoint.sh \
# git \
# -C \
# "${HOME}/fur-src" \
# checkout \
# "7298b4939aca69ca6bd4c483267cf436c5047962"
cd \
"${HOME}/fur-src"; \
/entrypoint.sh \
make \
-C \
"${HOME}/fur-src" \
DESTDIR="/data/data/com.termux/files" \
PREFIX="/usr" \
install-fur
/entrypoint.sh \
termux-fix-shebang \
"$(which \
"fur")"; \
/entrypoint.sh \
fur \
-v \
-h
- name:
Installs Termux Keyring.
run: |
/entrypoint.sh \
fur \
-v \
-p \
"pacman" \
-D \
"n" \
-T \
"termux-keyring"
/entrypoint.sh \
pacman-key \
--init || \
true
/entrypoint.sh \
pacman \
-Sy || \
true
- name:
Installs Filesystem.
env:
GH_TOKEN:
${{ github.token }}
run: |
/entrypoint.sh \
fur \
-v \
-p \
"pacman" \
-m \
"github" \
-t \
"tree" \
-D \
"n" \
-T \
"filesystem"
- name:
Installs Coreutils.
run: |
/entrypoint.sh \
pacman \
-Sy \
--noconfirm \
--overwrite="*" \
"coreutils" || \
true
- uses:
actions/checkout@v4.2.2
- name:
Installs EVM Chains Info.
run: |
/entrypoint.sh \
platform-get \
-v
cat \
"/entrypoint.sh"
which \
"fur"
/entrypoint.sh \
fur \
-v \
-h
$(which \
"fur") \
-v \
-h || \
true
/entrypoint.sh \
fur \
-v \
-p \
"pacman" \
-m \
"github" \
-t \
"tree" \
-T \
"evm-chains-info" || \
true
- name:
Installs EVM Chains Explorers.
run: |
/entrypoint.sh \
fur \
-v \
-p \
"pacman" \
"evm-chains-explorers"
# - name:
# Installs LibEVM.
# run: |
# /entrypoint.sh \
# fur \
# -v \
# -p \
# "pacman" \
# -d \
# "libevm"
# /entrypoint.sh \
# rm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*".sig"
# /entrypoint.sh \
# pacman \
# -Udd \
# --noconfirm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*
# /entrypoint.sh \
# rm \
# -rf \
# "${HOME}/fur"
# - name:
# Installs EVM Contracts Tools.
# run: |
# /entrypoint.sh \
# fur \
# -v \
# -p \
# "pacman" \
# -d \
# "evm-contracts-tools"
# /entrypoint.sh \
# rm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*".sig"
# /entrypoint.sh \
# pacman \
# -Udd \
# --noconfirm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*
# /entrypoint.sh \
# rm \
# -rf \
# "${HOME}/fur"
# - name:
# Installs EVM Wallet.
# run: |
# /entrypoint.sh \
# fur \
# -v \
# -p \
# "pacman" \
# -d \
# "evm-wallet"
# /entrypoint.sh \
# rm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*".sig"
# /entrypoint.sh \
# pacman \
# -Udd \
# --noconfirm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*
# /entrypoint.sh \
# rm \
# -rf \
# "${HOME}/fur"
# - name:
# Installs Key Gen.
# run: |
# /entrypoint.sh \
# fur \
# -v \
# -p \
# "pacman" \
# -d \
# "key-gen"
# /entrypoint.sh \
# rm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*".sig"
# /entrypoint.sh \
# pacman \
# -Udd \
# --noconfirm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*
# /entrypoint.sh \
# rm \
# -rf \
# "${HOME}/fur"
# - name:
# Installs EVMFS.
# run: |
# /entrypoint.sh \
# fur \
# -v \
# -p \
# "pacman" \
# -d \
# "evmfs"
# /entrypoint.sh \
# rm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*".sig"
# /entrypoint.sh \
# pacman \
# -Udd \
# --noconfirm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*
# /entrypoint.sh \
# rm \
# -rf \
# "${HOME}/fur"
# - name:
# Installs Aspe.
# run: |
# /entrypoint.sh \
# fur \
# -v \
# -p \
# "pacman" \
# -d \
# "lur"
# /entrypoint.sh \
# rm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*".sig"
# /entrypoint.sh \
# pacman \
# -Udd \
# --noconfirm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*
# /entrypoint.sh \
# rm \
# -rf \
# "${HOME}/fur"
# - name:
# Installs Lur.
# run: |
# /entrypoint.sh \
# fur \
# -v \
# -p \
# "pacman" \
# -d \
# "lur"
# /entrypoint.sh \
# rm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*".sig"
# /entrypoint.sh \
# pacman \
# -Udd \
# --noconfirm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*
# /entrypoint.sh \
# rm \
# -rf \
# "${HOME}/fur"
# - name:
# Installs Meson.
# run: |
# /entrypoint.sh \
# fur \
# -v \
# -p \
# "pacman" \
# -d \
# "meson"
# /entrypoint.sh \
# rm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*".sig"
# /entrypoint.sh \
# pacman \
# -Udd \
# --noconfirm \
# "${HOME}/fur/termux/any/"*".pkg.tar."*
# /entrypoint.sh \
# rm \
# -rf \
# "${HOME}/fur"
- name:
Setup.
run: |
# pkg/pip need to be prefixed with /entrypoint.sh
# because GHA overrode the entrypoint.
/entrypoint.sh \
pkg \
install \
-y \
"clang" \
"jq" \
"ninja"
# This doesn't work
# /entrypoint.sh \
# gpg \
# --homedir \
# "/data/data/com.termux/files/usr/etc/pacman.d/gnupg" \
# --recv-keys \
# "998DE27318E867EA976BA877389CEED64573DFCA"
# One needs to manually install the
# termux-keyring pacman package if
# in the Termux Debian environment.
# /entrypoint.sh \
# pacman \
# -Sy \
# termux-keyring
# /entrypoint.sh \
# pacman-key \
# --init
# /entrypoint.sh \
# pip \
# install \
# "meson"
- name:
Read pkgbase.
run: |
export \
_pkgbase="$( \
_evmfs="false" \
/entrypoint.sh \
recipe-get \
"PKGBUILD" \
"pkgbase")"
export \
_pkgname="$( \
_evmfs="false" \
/entrypoint.sh \
recipe-get \
"PKGBUILD" \
"pkgname")"
- name:
Installs build dependencies.
env:
GH_TOKEN:
${{ secrets.GITHUB_TOKEN }}
run: |
_evmfs="false" \
recipe-get \
-v \
-o \
"array" \
-d \
" " \
"PKGBUILD" \
"makedepends"
_evmfs="false" \
recipe-get \
-o \
"array" \
-d \
" " \
"PKGBUILD" \
"makedepends" > \
"${HOME}/makedepends"
for _pkg in $(cat "${HOME}/makedepends"); do \
_depend_name="$( \
/entrypoint.sh \
version-split \
"${_pkg}" \
"name")"
SHELL="bash" \
/entrypoint.sh \
pacman \
--verbose \
-S \
--noconfirm \
"${_depend_name}" \
--overwrite="*" || \
true
done
for _pkg in $(cat "${HOME}/makedepends"); do \
_depend_name="$( \
/entrypoint.sh \
version-split \
"${_pkg}" \
"name")"
/entrypoint.sh \
fur \
-v \
-t \
"ci" \
-m \
"github" \
-p \
"pacman" \
"${_pkg}" || \
true
done
- name:
Builds the Android package.
run: |
/entrypoint.sh \
recipe-get \
-v \
"PKGBUILD" \
"pkgbase" || \
true
export \
_pkgbase="$( \
/entrypoint.sh \
recipe-get \
"PKGBUILD" \
"pkgbase")"
_pkgbase="$( \
/entrypoint.sh \
recipe-get \
"PKGBUILD" \
"pkgbase")" && \
/entrypoint.sh \
mkdir \
-p \
"${HOME}/${_pkgbase}-build" && \
_arch="$( \
uname \
-m)" && \
/entrypoint.sh \
arch="${_arch}" \
TERMUX_VERSION=50 \
_evmfs="false" \
_git="false" \
_git_service="github" \
recipe-get \
-v \
"PKGBUILD" \
"source"
ln \
-s \
"/bin/true" \
"/system/bin/true" || \
true
ln \
-s \
"/system/bin/true" \
"/data/data/com.termux/files/usr/bin/true" || \
true
/entrypoint.sh \
arch="${_arch}" \
TERMUX_VERSION=50 \
_evmfs="false" \
_git="false" \
_git_service="github" \
recipe-get \
-v \
"PKGBUILD" \
"sha256sums" && \
/entrypoint.sh \
TERMUX_VERSION=50 \
arch="${_arch}" \
_evmfs="false" \
_git="false" \
_git_service="github" \
reallymakepkg \
-v \
-w \
"${HOME}/${_pkgbase}-build" \
-u \
-- \
-df \
--nocheck \
--skippgpcheck
/entrypoint.sh \
echo \
"Home: ${HOME}"
echo \
"Packages found:"
find \
"${PWD}" \
-iname \
"*pkg.tar*"
bash \
".github/android-arm32-fix"
# - name:
# Installs the package.
# run: |
# export \
# _pkgname="$( \
# /entrypoint.sh \
# recipe-get \
# "PKGBUILD" \
# "pkgname")"
# /entrypoint.sh \
# pacman \
# -Rdd \
# --noconfirm \
# ${_pkgname} || \
# true
# /entrypoint.sh \
# pacman \
# -Udd \
# --noconfirm \
# $(find \
# "${PWD}" \
# -iname \
# "*.pkg.tar.*")
- name:
version
run: |
/entrypoint.sh \
_evmfs="false" \
_git_service="github" \
makepkg \
--nobuild \
-df \
--skippgpcheck
echo \
"::set-output name=version::$( \
/entrypoint.sh \
_evmfs="false" \
recipe-get \
"PKGBUILD" \
"pkgver")-$( \
/entrypoint.sh \
_evmfs="false" \
recipe-get \
"PKGBUILD" \
"pkgrel")"
id:
version
- name:
Upload Termux package.
uses:
actions/upload-release-asset@v1
env:
GITHUB_TOKEN:
${{ secrets.GITHUB_TOKEN }}
with:
upload_url:
${{ github.event.release.upload_url }}
# ${{ steps.create_release.outputs.upload_url }}
asset_path:
"pacman-${{ steps.version.outputs.version }}-${{ matrix.architecture }}.pkg.tar.xz"
asset_name:
"dogeos-android-pacman-${{ steps.version.outputs.version }}-${{ matrix.architecture }}.pkg.tar.xz"
asset_content_type:
application/gzip
arch_release:
name:
Life and DogeOS GNU Base (Arch Linux) binary packages.
strategy:
matrix:
include:
- runner:
ubuntu-24.04
platform:
gnu
platform_target:
arch
architecture:
x86_64
container_architecture:
amd64
runs-on:
${{ matrix.runner }}
# prepare writable volume prefix mount
# for actions/upload-artifact,
# based on the higher-profile workaround
# for 32-bit GNU/Linux containers explained here
# https://github.com/actions/upload-artifact/issues/616#issuecomment-2350667347
container:
image:
archlinux:base-devel
volumes:
- /tmp/node20:/__e/node20
# approximate environment variables for actions
# that can't be forced to use entrypoint.sh
env:
# TERMUX_MAIN_PACKAGE_FORMAT:
# debian
# ANDROID_ROOT:
# /system
# ANDROID_DATA:
# /data
PREFIX:
/usr
# HOME:
# /data/data/com.termux/files/home
PATH:
/usr/bin
# TMPDIR:
# /data/data/com.termux/files/usr/tmp
LANG:
en_US.UTF-8
TZ:
UTC
steps:
- name:
Upgrade Arch environment.
run: |
pacman \
-Syu \
--noconfirm
- name:
Installs NodeJS to force compatibility with actions/checkout and actions/upload-artifact.
run: |
pacman \
-S \
--noconfirm \
"nodejs-lts-jod" || \
true
ln \
-sf \
"${PREFIX}/bin" \
"/__e/node20/bin"
- name:
Setups container.
run: |
pacman \
-S \
--noconfirm \
"github-cli" \
"git" \
"jq" \
"python" \
"python-docutils" \
"python-pip" \
"python-build" \
"tree" \
"unzip"
- uses:
actions/checkout@v4.2.2
- name:
Fixes executable bit for all binaries in "${PREFIX}/bin" for all users.
run: |
chmod \
-R \
"o+x" \
"${PREFIX}/bin"
- name:
Shows info.
run: |
printf \
"%s\n" \
"ID: '$(id)'." \
"Home: '${HOME}'." \
"Current directory: '${PWD}'." \
"Contents of the directory '${PWD}':"
ls \
"${PWD}"
tree \
-L \
2 \
"/"
- name:
Installs Crash Bash Library.
run: |
git \
clone \
--branch="libcrash-bash" \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/fur" \
"${HOME}/fur"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs Fur.
run: |
git \
clone \
--branch="fur" \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/fur" \
"${HOME}/fur"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs Inteppacman.
run: |
pacman \
-S \
--noconfirm \
"tree"
fur \
-v \
-p \
"pacman" \
-d \
"inteppacman"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
tree \
"${HOME}"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs Reallymakepkg.
run: |
fur \
-v \
-d \
"reallymakepkg"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
tree \
"${HOME}"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs Node Run.
run: |
fur \
-v \
-d \
"node-run"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs LibcrashJS.
run: |
fur \
-v \
-d \
"libcrash-js"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
tree \
"${HOME}"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs EVM Chains.
run: |
fur \
-v \
-d \
"evm-chains"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs Python AIOEtherscan.
run: |
fur \
-v \
-d \
"python-aioetherscan"
rm \
"${HOME}/fur/arch/${{ matrix.architecture }}/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/${{ matrix.architecture }}/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs Node Ethers.
run: |
fur \
-v \
-d \
"nodejs-ethers"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs EVM Chains Info.
run: |
fur \
-v \
-d \
"evm-chains-info"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs EVM Chains Explorers.
run: |
fur \
-v \
-d \
"evm-chains-explorers"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs LibEVM.
run: |
fur \
-v \
-d \
"libevm"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs EVM Wallet.
run: |
fur \
-v \
-d \
"evm-wallet"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs EVM Contracts ABI Get.
run: |
fur \
-v \
-d \
"evm-contracts-abi-get"
rm \
"${HOME}/fur/arch/${{ matrix.architecture }}/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/${{ matrix.architecture }}/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs EVM Contracts Tools.
run: |
fur \
-v \
-d \
"evm-contracts-tools"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs Key Gen.
run: |
fur \
-v \
-d \
"key-gen"
rm \
"${HOME}/fur/termux/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/termux/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs EVMFS.
run: |
fur \
-v \
-d \
"evmfs"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
# - name:
# Installs EVM Contracts Source Index.
# run: |
# fur \
# -v \
# -d \
# "evm-contracts-source-index-git"
# rm \
# "${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
# pacman \
# -Udd \
# --noconfirm \
# "${HOME}/fur/arch/any/"*".pkg.tar."*
# rm \
# -rf \
# "${HOME}/fur"
- name:
Installs Aspe.
run: |
fur \
-v \
-d \
"aspe"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs Lur.
run: |
fur \
-v \
-d \
"lur"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs Ur.
run: |
fur \
-v \
-d \
"ur"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Setups an user. This is something which exists on the Ur for a reason.
run: |
mkdir \
-p \
"/home/user/lur"
useradd \
user
chmod \
700 \
"/home/user"
chown \
-R \
"user:user" \
"/home/user"
chown \
-R \
"user:user" \
"${PWD}"
- name:
Installs latest Crash Bash Library.
run: |
git \
clone \
"https://github.com/themartiancompany/crash-bash"
cd \
"crash-bash"
mkdir \
-p \
"/usr/lib/libcrash-bash"
make \
PREFIX="/usr" \
install
- name:
Installs latest Reallymakepkg.
run: |
pacman \
-Rdd \
--noconfirm \
"reallymakepkg"
git \
clone \
--branch="main" \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/reallymakepkg" \
"${HOME}/reallymakepkg-src" || \
true
git \
-C \
"${HOME}/reallymakepkg-src" \
log | \
head \
-n \
20
cd \
"${HOME}/reallymakepkg-src"
make \
-C \
"${HOME}/reallymakepkg-src" \
PREFIX="/usr" \
install-scripts
make \
-C \
"${HOME}/reallymakepkg-src" \
PREFIX="/usr" \
install-configs || \
true
install \
-vDm644 \
"${HOME}/reallymakepkg-src/configs/makepkg.gnu.conf" \
"/etc/reallymakepkg/makepkg.gnu.conf"
- name:
Installs latest EVM GNUPG.
run: |
git \
clone \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/evm-gnupg" \
"${HOME}/evm-gnupg-src" || \
true
cd \
"${HOME}/evm-gnupg-src"
make \
PREFIX="/usr" \
install-scripts
- name:
Installs latest gl-dl.
run: |
git \
clone \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/gl-dl" \
"${HOME}/gl-dl-src" || \
true
cd \
"${HOME}/gl-dl-src"
make \
PREFIX="/usr" \
install-scripts
- name:
Installs latest Gur.
run: |
git \
clone \
--branch="master" \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/gur" \
"${HOME}/gur-src" || \
true
make \
-C \
"${HOME}/gur-src" \
PREFIX="/usr" \
install-scripts
- name:
Installs latest Fur.
run: |
git \
clone \
--branch="main" \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/fur" \
"${HOME}/fur-src" || \
true
cd \
"${HOME}/fur-src"
make \
PREFIX="/usr" \
install-fur
- name:
Read pkgbase.
run: |
export \
_pkgbase="$( \
_evmfs="false" \
recipe-get \
"PKGBUILD" \
"pkgbase")"
export \
_pkgname="$( \
_evmfs="false" \
recipe-get \
"PKGBUILD" \
"pkgname")"
- name:
Installs build dependencies.
env:
GH_TOKEN:
${{ secrets.GITHUB_TOKEN }}
run: |
ls
_evmfs="false" \
_git="false" \
_git_service="github" \
recipe-get \
-o \
"array" \
-d \
" " \
"PKGBUILD" \
"makedepends"
_evmfs="false" \
_git_service="github" \
recipe-get \
-o \
"array" \
-d \
" " \
"PKGBUILD" \
"makedepends" > \
"${HOME}/makedepends"
# ( _evmfs="false" \
# recipe-get \
# -o \
# "array" \
# -d \
# " " \
# "PKGBUILD" \
# "makedepends" || \
# true ) > \
# "makedepends"
export \
_makedepends="$( \
cat \
"${HOME}/makedepends")"
echo \
"Build dependencies found: '$_makedepends'."
for _pkg in "jq" $(cat "${HOME}/makedepends"); do \
echo \
"Extracting package name from '${_pkg}' with version-split."; \
version-split \
-v \
"${_pkg}" \
"name" || \
true; \
export \
_depend_name="$( \
version-split \
"${_pkg}" \
"name" || \
true)"; \
echo \
"Installing '${_depend_name}' with pacman."; \
pacman \
-S \
--noconfirm \
"${_depend_name}" \
--overwrite="*" || \
true
done
for _pkg in $(cat "${HOME}/makedepends"); do \
_depend_name="$( \
version-split \
"${_pkg}" \
"name" || \
true)"; \
echo \
"Installing '${_depend_name}' with fur."; \
fur \
-v \
-t \
"ci" \
-m \
"github" \
-p \
"pacman" \
"${_depend_name}" || \
true
done
- name:
Builds the Arch package.
run: |
_evmfs="false" \
_git_service="github" \
recipe-get \
-v \
"PKGBUILD" \
"pkgbase"
export \
_pkgbase="$( \
_evmfs="false" \
_git_service="github" \
recipe-get \
"PKGBUILD" \
"pkgbase")" && \
su \
-c \
"cd ${PWD} && _evmfs="false" _git="false" _git_service="github" reallymakepkg -v -u -w '/home/user/${_pkgbase}-build' -- -df --nocheck --skippgpcheck && ls -lsh" - \
"user"
- name:
Fix naming issue with architecture.
run: |
export \
_pkgname="$( \
_evmfs="false" \
_git_service="github" \
recipe-get \
"PKGBUILD" \
"pkgname")" \
_pkgver="$( \
_evmfs="false" \
_git_service="github" \
recipe-get \
"PKGBUILD" \
"pkgver")" \
_pkgrel="$( \
_evmfs="false" \
_git_service="github" \
recipe-get \
"PKGBUILD" \
"pkgrel")" && \
mv \
"${_pkgname}-${_pkgver}-${_pkgrel}-x86_64pkg.tar.xz" \
"${_pkgname}-${_pkgver}-${_pkgrel}-x86_64.pkg.tar.xz" || \
true
# - name:
# Installs the package.
# run: |
# pacman \
# -Rdd \
# --noconfirm \
# fur || \
# true
# pacman \
# -Rdd \
# --noconfirm \
# fur-docs || \
# true
# pacman \
# -Udd \
# --noconfirm \
# $(find \
# "${PWD}" \
# -iname \
# "*.pkg.tar.*")
- name:
version
run: |
echo \
"::set-output name=version::$( \
_evmfs="false" \
recipe-get \
"PKGBUILD" \
"pkgver")-$( \
_evmfs="false" \
recipe-get \
"PKGBUILD" \
"pkgrel")"
id:
version
- name:
Uploads Arch package.
uses:
actions/upload-release-asset@v1
env:
GITHUB_TOKEN:
${{ secrets.GITHUB_TOKEN }}
with:
upload_url:
${{ github.event.release.upload_url }}
# ${{ steps.create_release.outputs.upload_url }}
asset_path:
"pacman-${{ steps.version.outputs.version }}-${{ matrix.architecture }}.pkg.tar.xz"
asset_name:
"dogeos-gnu-pacman-${{ steps.version.outputs.version }}-${{ matrix.architecture }}.pkg.tar.xz"
asset_content_type:
application/gzip
msys2_release:
name:
Life and DogeOS Windows base packages (CI).
strategy:
matrix:
include:
- { sys:
mingw64,
env:
x86_64,
arch:
x86_64 }
runs-on:
windows-latest
defaults:
run:
shell:
msys2 {0}
steps:
- uses:
msys2/setup-msys2@v2
with:
msystem:
${{ matrix.sys }}
update:
true
install:
base-devel
dos2unix
mingw-w64-${{ matrix.env }}-github-cli
git
mingw-w64-${{ matrix.env }}-jq
mingw-w64-${{ matrix.env }}-gcc
mingw-w64-${{ matrix.env }}-nodejs
python-docutils
unzip
- name:
Upgrade Arch environment.
run: |
pacman \
-Syu \
--noconfirm
- name:
Installs Crash Bash Library.
run: |
git \
clone \
--branch="libcrash-bash" \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/fur" \
"${HOME}/fur"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs Fur.
run: |
git \
clone \
--branch="fur" \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/fur" \
"${HOME}/fur"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs Inteppacman.
run: |
pacman \
-S \
--noconfirm \
"tree"
fur \
-v \
-p \
"pacman" \
-d \
"inteppacman"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
tree \
"${HOME}"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs Reallymakepkg.
run: |
fur \
-v \
-d \
"reallymakepkg"
rm \
"${HOME}/fur/arch/any/"*".pkg.tar."*".sig"
tree \
"${HOME}"
pacman \
-Udd \
--noconfirm \
"${HOME}/fur/arch/any/"*".pkg.tar."*
rm \
-rf \
"${HOME}/fur"
- name:
Installs latest Crash Bash Library.
run: |
git \
clone \
"https://github.com/themartiancompany/crash-bash"
cd \
"crash-bash"
mkdir \
-p \
"/usr/lib/libcrash-bash"
make \
PREFIX="/usr" \
install
- name:
Installs latest Reallymakepkg.
run: |
pacman \
-Rdd \
--noconfirm \
"reallymakepkg"; \
git \
clone \
--branch \
"main" \
--single-branch \
"https://github.com/themartiancompany/reallymakepkg" \
"${HOME}/reallymakepkg-src" || \
true
cd \
"${HOME}/reallymakepkg-src"
make \
-C \
"${HOME}/reallymakepkg-src" \
PREFIX="/usr" \
install-scripts
install \
-vDm644 \
"${HOME}/reallymakepkg-src/configs/makepkg.gnu.conf" \
"/etc/reallymakepkg/makepkg.gnu.conf"
- name:
Installs latest EVM GNUPG.
run: |
git \
clone \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/evm-gnupg" \
"${HOME}/evm-gnupg-src" || \
true
cd \
"${HOME}/evm-gnupg-src"
make \
PREFIX="/usr" \
install-scripts
- name:
Installs latest gl-dl.
run: |
git \
clone \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/gl-dl" \
"${HOME}/gl-dl-src" || \
true
cd \
"${HOME}/gl-dl-src"
make \
PREFIX="/usr" \
install-scripts
- name:
Installs latest Gur.
run: |
git \
clone \
--branch="master" \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/gur" \
"${HOME}/gur-src" || \
true
make \
PREFIX="/usr" \
-C \
"${HOME}/gur-src" \
install-scripts
- name:
Installs latest Fur.
run: |
git \
clone \
--branch="main" \
--single-branch \
--depth=1 \
"https://github.com/themartiancompany/fur" \
"${HOME}/fur-src" || \
true
cd \
"${HOME}/fur-src"
make \
PREFIX="/usr" \
install-fur
# - name:
# Installs Rust.
# run: |
# pacman \
# -Ss \
# --noconfirm \
# cargo
- name:
Fixes CRLF on Windows.
run: |
git \
config \
--global \
"core.autocrlf" \
"false"
- uses:
actions/checkout@v3
- name:
Installs recent EVM GNUPG.
env:
GITHUB_TOKEN:
${{ secrets.GITHUB_TOKEN }}
run: |
pacman \
-S \
--noconfirm \
"mingw-w64-${{ matrix.env }}-github-cli"
bash \
".github/gur-mini" \
"themartiancompany" \
"evm-gnupg" \
"0.0.0.0.0.0.0.0.1.1.1.1.1.1-15"
# git \
# clone \
# --single-branch \
# --depth=1 \
# "https://github.com/themartiancompany/evm-gnupg" \
# "${HOME}/evm-gnupg-src" || \
# true
# cd \
# "${HOME}/evm-gnupg-src"
# make \
# -C \
# "${HOME}/evm-gnupg-src" \
# PREFIX="/usr" \
# install-scripts
- name:
Installs build dependencies.
env:
GH_TOKEN:
${{ secrets.GITHUB_TOKEN }}
run: |
pacman \
-Ss \
"npm" || \
true
mkdir \
-p \
"/root/package.orig"
cp \
-v \
-r \
"${PWD}/"* \
"/root/package.orig"
dos2unix \
"PKGBUILD"
_evmfs="false" \
_git_service="github" \
recipe-get \
-v \
-o \
"array" \
-d \
" " \
"PKGBUILD" \
"makedepends" || \
true
_evmfs="false" \
_git_service="github" \
"recipe-get" \
-o \
"array" \
-d \
" " \
"PKGBUILD" \
"makedepends" > \
"${HOME}/makedepends"; \
# ( _evmfs="false" \
# recipe-get \
# -o \
# "array" \
# -d \
# " " \
# "PKGBUILD" \
# "makedepends" > \
# "${HOME}/makedepends"
for _pkg in $(cat "${HOME}/makedepends"); do \
_mingw_name="mingw-w64-${{ matrix.env }}-${_pkg}"; \
export \
_pkgs_mingw="${_pkgs_mingw} ${_mingw_name}"; \
echo \
"${_mingw_name}" >> \
"${HOME}/makedepends-mingw"; \
done
for _pkg in $(cat "${HOME}/makedepends"); do \
_depend_name="$( \
version-split \
"${_pkg}" \
"name")"; \
echo \
"Installing '${_depend_name}' with pacman."; \
pacman \
-S \
--noconfirm \
"${_depend_name}" \
--overwrite="*" || \
true; \
done
for _pkg in $(cat "${HOME}/makedepends-mingw"); do \
_depend_name="$( \
version-split \
"${_pkg}" \
"name")"; \
echo \
"Installing mingw '${_depend_name}' build dependency with pacman."; \
pacman \
-S \
--noconfirm \
"${_depend_name}" \
--overwrite="*" || \
true; \
done
for _pkg in $(cat "${HOME}/makedepends"); do \
_depend_name="$( \
version-split \
"${_pkg}" \
"name")"; \
echo \
"Installing '${_depend_name}' with fur."; \
fur \
-v \
-t \
"ci" \
-m \
"github" \
-p \
"pacman" \
"${_depend_name}" || \
true; \
done
for _pkg in $(cat "${HOME}/makedepends-mingw"); do \
_depend_name="$( \
version-split \
"${_pkg}" \
"name")"; \
echo \
"Installing MinGW '${_depend_name}' build dependency with fur."; \
fur \
-v \
-t \
"ci" \
-m \
"github" \
-p \
"pacman" \
"${_depend_name}" || \
true; \
done
- uses:
actions/checkout@v3
- name:
Builds the Windows package.
run: |
mkdir \
-p \
"/root/temp"
# sha256sum \
# "arch-meson"
# dos2unix \
# "arch-meson"
# sha256sum \
# "${PWD}/"* || \
# true
# cp \
# -v \
# -r \
# "${PWD}/* \
# "/root/temp" || \
# true
# dos2unix \
# "PKGBUILD" || \
# true
# recipe-get \
# -v \
# "PKGBUILD" \
# "sha256sums"
# cp \
# "PKGBUILD" \
# "PKGBUILD.windows"
# cp \
# -v \
# -r \
# "/root/temp/"* \
# "."
# mv \
# "PKGBUILD.windows" \
# "PKGBUILD"
# rm \
# -rf \
# "/root/temp"
# export \
# _pkgbase="$( \
# recipe-get \
# "PKGBUILD" \
# "pkgbase")"
# echo \
# "$(uname \
# -o)"
# _evmfs="false" \
# _git_service="github" \
# recipe-get \
# -v \
# "PKGBUILD" \
# "source"
# _evmfs="false" \
# _git_service="github" \
# recipe-get \
# -v \
# "PKGBUILD" \
# "sha256sums"
# PKGEXT='.pkg.tar.xz' \
# _evmfs="false" \
# _git="false" \
# _git_service="github" \
export \
_oldpwd="${PWD}" && \
cd \
"/root/package.orig"; \
dos2unix \
"PKGBUILD"; \
cp \
-v \
-r \
"PKGBUILD" \
"${_oldpwd}/PKGBUILD"; \
cd \
"${_oldpwd}"; \
export \
_pkgbase="$( \
recipe-get \
"PKGBUILD" \
"pkgbase")" && \
arch="${_arch}" \
_evmfs="false" \
_git="false" \
_git_service="github" \
reallymakepkg \
-v \
-w \
"${HOME}/${_pkgbase}-build" \
-u \
-- \
-df \
--nocheck \
--skippgpcheck
# makepkg \
# -df \
# --nocheck \
# --skippgpcheck; \
ls \
-lsh
- name:
Fix naming issue with architecture.
run: |
export \
_pkgname="$( \
_evmfs="false" \
_git_service="github" \
recipe-get \
"PKGBUILD" \
"pkgname")" \
_pkgver="$( \
_evmfs="false" \
_git_service="github" \
recipe-get \
"PKGBUILD" \
"pkgver")" \
_pkgrel="$( \
_evmfs="false" \
_git_service="github" \
recipe-get \
"PKGBUILD" \
"pkgrel")" && \
mv \
"${_pkgname}-${_pkgver}-${_pkgrel}-x86_64pkg.tar.xz" \
"${_pkgname}-${_pkgver}-${_pkgrel}-x86_64.pkg.tar.xz" || \
true
# _evmfs="false" \
# _git_service="github" \
# reallymakepkg \
# -v \
# -w \
# "${HOME}/${_pkgbase}-build" \
# -u \
# -- \
# -df \
# --nocheck \
# --skippgpcheck
find \
"${PWD}" \
-iname \
"*.pkg.tar.*"
# - name:
# Installs the package.
# run: |
# echo \
# "env position: $(command -v env)"
# pacman \
# -Rdd \
# --noconfirm \
# fur || \
# true
# pacman \
# -Rdd \
# --noconfirm \
# fur-docs || \
# true
# pacman \
# -Udd \
# --noconfirm \
# --overwrite="*" \
# $(find \
# "${PWD}" \
# -iname \
# "*.pkg.tar.*")
- name:
version
run: |
echo \
"::set-output name=version::$( \
export \
_evmfs="false" && \
recipe-get \
"PKGBUILD" \
"pkgver")-$( \
export \
_evmfs="false" && \
recipe-get \
"PKGBUILD" \
"pkgrel")"
id:
version
- name:
Upload Windows package.
uses:
actions/upload-release-asset@v1
env:
GITHUB_TOKEN:
${{ secrets.GITHUB_TOKEN }}
with:
upload_url:
${{ github.event.release.upload_url }}
# ${{ steps.create_release.outputs.upload_url }}
asset_path:
"pacman-${{ steps.version.outputs.version }}-${{ matrix.arch }}.pkg.tar.xz"
asset_name:
"dogeos-windows-pacman-${{ steps.version.outputs.version }}-${{ matrix.arch }}.pkg.tar.xz"
asset_content_type:
application/gzip
# This is the ideal way termux-docker would work with GHA.
broken-ideal:
if:
false
runs-on:
ubuntu-latest
container:
termux/termux-docker:x86_64
steps:
- name:
setup
run: |
pkg \
install \
-y \
"ninja" \
"clang" \
/entrypoint.sh \
pip \
install \
"meson"
/entrypoint.sh \
pip \
install \
"poetry"
/entrypoint.sh \
pip \
install \
"build"
/entrypoint.sh \
pip \
install \
"installer"
/entrypoint.sh \
pip \
install \
"setuptools"
- uses:
actions/checkout@v3.3.0
- name:
Builds the package.
run:
touch \
artifact
- uses:
actions/upload-artifact@v3.1.2
if:
always()
with:
name:
artifact
path:
artifact
# github.event.release.upload_url