chore: pull helio #267
Workflow file for this run
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: Version Release | |
on: | |
push: | |
tags: | |
- 'v*' | |
permissions: | |
contents: write | |
env: | |
RELEASE_DIR: build-release | |
jobs: | |
create-release: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Create Release | |
uses: ncipollo/release-action@v1 | |
with: | |
allowUpdates: true | |
omitBody: true | |
prerelease: true | |
draft: true | |
token: ${{ secrets.GITHUB_TOKEN }} | |
build-qemu: | |
runs-on: ubuntu-latest | |
name: Build aarch64 on ubuntu20.04 | |
needs: create-release | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: uraimo/run-on-arch-action@v2 | |
name: Run commands | |
id: runcmd | |
with: | |
arch: aarch64 | |
distro: ubuntu20.04 | |
githubToken: ${{ github.token }} | |
# Create an artifacts directory | |
setup: | | |
mkdir -p "${PWD}/artifacts" | |
# Mount the artifacts directory as /artifacts in the container | |
dockerRunArgs: | | |
--volume "${{ github.workspace }}:/src" | |
# The shell to run commands with in the container | |
shell: /bin/bash | |
install: | | |
export DEBIAN_FRONTEND=noninteractive | |
apt update && apt install -q -y autoconf-archive cmake curl git libssl-dev \ | |
libunwind-dev ninja-build libtool gcc-9 g++-9 libboost-context-dev \ | |
zip libzstd-dev debhelper moreutils bison zlib1g-dev | |
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 40 \ | |
--slave /usr/bin/g++ g++ /usr/bin/g++-9 | |
run: | | |
# Work around https://github.com/actions/checkout/issues/766 | |
git config --global --add safe.directory /src | |
cd /src | |
git describe --always --tags ${{ github.sha }} | |
if [ -d ${{ env.RELEASE_DIR }} ]; then | |
chown -R root ${{ env.RELEASE_DIR }} | |
ls -l ./${{ env.RELEASE_DIR }} | |
for i in `ls -d ./${{ env.RELEASE_DIR }}/_deps/*-src`; do | |
git config --global --add safe.directory $(realpath $i) | |
done | |
fi | |
./tools/release.sh | |
./tools/packaging/generate_debian_package.sh ${{ env.RELEASE_DIR }}/dragonfly-aarch64 | |
mv dragonfly_*.deb ${{ env.RELEASE_DIR }}/ | |
- name: Show the artifact | |
# Items placed in /src/${{ env.RELEASE_DIR }} in the container will be in | |
# ${PWD}/${{ env.RELEASE_DIR }} on the host. | |
run: | | |
echo finished | |
ls -al | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dragonfly-aarch64 | |
path: | | |
${{ env.RELEASE_DIR }}/dragonfly-*tar.gz | |
${{ env.RELEASE_DIR }}/dragonfly_*.deb | |
build-native: | |
runs-on: ubuntu-latest | |
needs: create-release | |
strategy: | |
matrix: | |
include: | |
# Build with these flags | |
- name: debian | |
container: ubuntu-dev:20 | |
- name: rpm | |
container: fedora:30 | |
container: | |
image: ghcr.io/romange/${{ matrix.container }} | |
options: --security-opt seccomp=unconfined --sysctl "net.ipv6.conf.all.disable_ipv6=0" | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Configure | |
run: | | |
if [ -f /etc/redhat-release ]; then | |
dnf install -y rpm-build libstdc++-static | |
fi | |
- name: Build artifacts | |
timeout-minutes: 25 | |
run: | | |
# Work around https://github.com/actions/checkout/issues/766 | |
git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
git describe --always --tags ${{ github.sha }} | |
./tools/release.sh | |
# once the build is over, we want to generate a Debian package | |
if [ -f /etc/debian_version ]; then | |
./tools/packaging/generate_debian_package.sh ${{ env.RELEASE_DIR }}/dragonfly-x86_64 | |
else | |
echo "Creating package for ${{github.ref_name}}" | |
./tools/packaging/rpm/build_rpm.sh ${{ env.RELEASE_DIR }}/dragonfly-x86_64.tar.gz ${{github.ref_name}} | |
fi | |
- name: Run regression tests | |
# Fedora 30 has older python packages, so this fails during requirements installation. | |
if : matrix.container != 'fedora:30' | |
uses: ./.github/actions/regression-tests | |
with: | |
dfly-executable: dragonfly-x86_64 | |
gspace-secret: ${{ secrets.GSPACES_BOT_DF_BUILD }} | |
build-folder-name: ${{ env.RELEASE_DIR }} | |
- name: Save artifacts | |
run: | | |
# place all artifacts at the same location | |
mkdir -p results-artifacts | |
if [ -f /etc/debian_version ]; then | |
mv ${{ env.RELEASE_DIR }}/dragonfly-*tar.gz results-artifacts | |
mv dragonfly_*.deb results-artifacts | |
else | |
ls -l *.rpm | |
mv ./*.rpm ./results-artifacts/ | |
fi | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dragonfly-amd64-${{ matrix.name }} | |
path: results-artifacts/* | |
publish_release: | |
runs-on: ubuntu-latest | |
needs: [build-native, build-qemu] | |
steps: | |
- uses: actions/download-artifact@v4 | |
name: Download files | |
with: | |
path: artifacts | |
- name: See all the artifacts | |
run: | | |
ls -lR artifacts/ | |
- uses: ncipollo/release-action@v1 | |
with: | |
artifacts: "artifacts/dragonfly-*/*" | |
allowUpdates: true | |
draft: true | |
prerelease: true | |
omitNameDuringUpdate: true | |
token: ${{ secrets.GITHUB_TOKEN }} |