Skip to content

Build and Release

Build and Release #383

name: "Build and Release"
on:
push:
branches:
- "*"
pull_request:
branches:
- "*"
release:
types:
- released
schedule:
- cron: "0 0 * * 6"
jobs:
create-prerelease:
name: Create Prerelease
if: github.event_name == 'push' || github.event_name == 'schedule'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set current date as env variable
run: echo "NOW=$(date --utc)" >> $GITHUB_ENV
- name: Delete Continuous Release
run: gh release delete continuous --cleanup-tag || true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create Prerelease Tag
id: create_prerelease_tag
run: |
gh release create continuous -p -t 'Continuous build' --notes "Building time: ${NOW}
- - -
"
# Make sure draft is false
gh release edit continuous --draft=false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
static-build:
runs-on: ubuntu-latest
container: "ghcr.io/abcfy2/musl-cross-toolchain-ubuntu:${{ matrix.cross_host }}"
strategy:
fail-fast: false
matrix:
cross_host:
- arm-unknown-linux-musleabi
- aarch64-unknown-linux-musl
- mips-unknown-linux-musl
- mipsel-unknown-linux-musl
- mips64-unknown-linux-musl
- x86_64-unknown-linux-musl
- x86_64-w64-mingw32
- i686-w64-mingw32
# use_libressl: [0, 1]
# exclude:
# - cross_host: x86_64-w64-mingw32
# use_libressl: 1
# - cross_host: i686-w64-mingw32
# use_libressl: 1
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/cache@v4
id: cache
with:
path: downloads/
key: build-cache-${{ matrix.cross_host }}-${{ github.sha }}
restore-keys: |
build-cache-${{ matrix.cross_host }}-
- name: compile
env:
CROSS_HOST: "${{ matrix.cross_host }}"
USE_LIBRESSL: "${{ matrix.use_libressl }}"
run: |
if [ "${GITHUB_EVENT_NAME}" = release ]; then
export ARIA2_VER="${GITHUB_REF#refs/*/}"
echo "ARIA2_VER=${ARIA2_VER}" >> $GITHUB_ENV
fi
"${GITHUB_WORKSPACE}/build.sh"
- name: zip archiving
env:
CROSS_HOST: "${{ matrix.cross_host }}"
# USE_LIBRESSL: "${{ matrix.use_libressl }}"
run: |
apt install -y zip
if [ x"${USE_LIBRESSL}" = x"1" ]; then
ARCHIVE_NAME="aria2-${CROSS_HOST//-unknown/}_libressl_static.zip"
else
ARCHIVE_NAME="aria2-${CROSS_HOST//-unknown/}_static.zip"
fi
echo "ARCHIVE_NAME=${ARCHIVE_NAME}" >> $GITHUB_ENV
zip -j9v "/tmp/${ARCHIVE_NAME}" "${GITHUB_WORKSPACE}"/aria2c*
shell: bash
- name: Prerelease assets
if: github.event_name == 'push' || github.event_name == 'schedule'
uses: softprops/action-gh-release@v2
with:
files: /tmp/${{ env.ARCHIVE_NAME }}
prerelease: true
draft: false
tag_name: continuous
name: Continuous build
body_path: "${{ github.workspace }}/build_info.md"
append_body: true
- name: Upload Github Assets
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
files: /tmp/${{ env.ARCHIVE_NAME }}
name: aria2 ${{ env.ARIA2_VER }} static release
body_path: "${{ github.workspace }}/build_info.md"
append_body: true