Skip to content

New beta build

New beta build #29

Workflow file for this run

name: Build image
on:
# Allow manual runs of workflow from Actions tab
workflow_dispatch:
inputs:
version-bump:
description: Version bump
required: true
type: choice
options:
- Auto
- Major
- Minor
- Patch
- RC
- Dev
- Release
default: Auto
# schedule:
# - cron: '37 5 * * *'
push:
branches:
- force-build
- rg-dev
- rg-release
jobs:
build:
runs-on: "${{ vars.RUNS_ON || 'ubuntu-22.04' }}"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: '0'
- name: Prepare docker output
run: |
touch output.env
- name: Build image
id: build-image
run: |
last_commit_date=$(git log -1 --format=%cd --date=unix)
last_day=$(date -d '-1 day' +%s)
if [ "${last_commit_date}" -lt "${last_day}" ]; then
echo "Nothig new to build."
echo "Last commit:"
git log -1 --format='%C(auto)%h (%cd) - %s' --date=relative
exit 0
fi
sudo docker run --rm --privileged \
multiarch/qemu-user-static --reset -p yes
sudo -E ./build-docker.sh -v ${{ github.workspace }}/output.env:/output.env
env:
FIRST_USER_NAME: ${{ vars.FIRST_USER_NAME }}
FIRST_USER_PASS: ${{ vars.FIRST_USER_PASS }}
- name: Load and export docker output
run: |
while IFS='=' read -r key value; do
echo "Processing $key with value $value"
echo "$key=$value" >> $GITHUB_ENV
done < output.env
echo "All variables from output.env have been added to GITHUB_ENV."
- name: Generate checksum
id: generate-checksum
run: |
cd deploy; for file in *.zip; do sha256sum --binary $file | sudo tee "${file}.sha256"; done; cd ../
- name: Get current date
id: date
run: echo "date=$(date -u +'%Y%m%d')" >> $GITHUB_ENV
- name: Set nightly artifact name
id: set-nightly-artifact-name
run: echo "ARTIFACT_NAME=wlanpi-nightly-${{ env.version }}~gha${{ env.date }}" >> $GITHUB_ENV
- name: Upload image
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}
path: deploy/*.zip
- name: Upload zipped image checksum
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}-sha256
path: deploy/*.sha256
- name: Upload image info
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}-info
path: deploy/*.info
- name: Create pre-release from default branch
if: ${{ github.event.ref == format('refs/heads/{0}', github.event.repository.default_branch) || github.event.ref == format('refs/heads/{0}', 'rg-release') }}
uses: "joshschmelzle/action-automatic-releases@1c60c2dcfeb5382b81099310bdb4a376dc7753a0"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: ${{ env.version }}
prerelease: true
files: |
deploy/*.zip
deploy/*.info
deploy/rg-wlanpi-os/os.json
deploy/*.sha256
- name: Upload logs
if: always()
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}-buildlogs
path: deploy/*.log
- name: Chown the dir for next time
if: always()
run: |
sudo chown -R ubuntu:ubuntu ./*
slack-workflow-status:
if: ${{ always() && (github.repository_owner == 'WLAN-Pi') && (! github.event.pull_request.head.repo.fork) }}
name: Post Workflow Status to WLAN-Pi Slack
needs:
- build
runs-on: "${{ vars.RUNS_ON || 'ubuntu-22.04' }}"
steps:
- name: Slack Workflow Notification
uses: Gamesight/slack-workflow-status@master
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }}