Build #882
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: Build | |
# Trigger the workflow on push or pull request | |
on: | |
push: | |
paths: | |
- 'build.bash' | |
- 'build-image/openhabian-installer.service' | |
- 'build-image/first-boot.bash' | |
- 'includes/offline-image-modifications.bash' | |
- '.github/workflows/build-action.yml' | |
pull_request: | |
paths: | |
- 'build.bash' | |
- 'build-image/openhabian-installer.service' | |
- 'build-image/first-boot.bash' | |
- 'includes/offline-image-modifications.bash' | |
- '.github/workflows/build-action.yml' | |
workflow_dispatch: | |
inputs: | |
comments: | |
description: 'Build comments' | |
default: 'Build for testing purposes' | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
ref: ${{ github.event.pull_request.head.ref }} | |
- name: Setup environment | |
id: setup | |
run: | | |
sudo -E bash -c set | |
sudo apt-get update | |
sudo apt-get install --yes libarchive-zip-perl dos2unix systemd-container qemu-user-static qemu-utils | |
echo "image32=$(basename "$(curl "https://downloads.raspberrypi.org/raspios_lite_armhf_latest" -s -L -I -o /dev/null -w '%{url_effective}')")" >> $GITHUB_OUTPUT | |
echo "image64=$(basename "$(curl "https://downloads.raspberrypi.org/raspios_lite_arm64_latest" -s -L -I -o /dev/null -w '%{url_effective}')")" >> $GITHUB_OUTPUT | |
- name: Cache Raspberry Pi OS 32bit image | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.setup.outputs.image32 }} | |
key: ${{ steps.setup.outputs.image32 }} | |
- name: Cache Raspberry Pi OS 64bit image | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.setup.outputs.image64 }} | |
key: ${{ steps.setup.outputs.image64 }} | |
- name: Build openHABian images | |
id: build | |
run: | | |
sudo -E ./tests/ci-setup.bash github ${{ github.ref_name }} | |
for f in "openhabian.conf openhabian.pi-raspios32.conf openhabian.pi-raspios64.conf"; do | |
if [[ -f build-image/$f ]]; then | |
sed -i -e "s|^userpw=.*$|userpw=\"${{secrets.USERPW}}\"|g" build-image/$f | |
fi | |
done | |
#sed -i -e "s|^userpw=.*$|userpw=\"${{secrets.USERPW}}\"|g" build-image/openhabian.pi-raspios32.conf | |
#sed -i -e "s|^userpw=.*$|userpw=\"${{secrets.USERPW}}\"|g" build-image/openhabian.pi-raspios64.conf | |
sed -i -e "s|ap_password:.*$|ap_password: ${{secrets.HOTSPOTPW}}|g" includes/comitup.conf | |
cp build-image/template_rpi-imager-openhab.json rpi-imager-openhab.json | |
sudo -E ./build.bash rpi | |
sudo -E ./build.bash rpi64 | |
#echo "::set-output name=image32::$(ls openhabian-pi-raspios32*.img.xz)" | |
#echo "::set-output name=image64::$(ls openhabian-pi-raspios64*.img.xz)" | |
#echo "::set-output name=json_image::$(ls rpi-imager-openhab.json)" | |
echo "image32=$(ls openhabian-pi-raspios32*.img.xz)" >> $GITHUB_OUTPUT | |
echo "image64=$(ls openhabian-pi-raspios64*.img.xz)" >> $GITHUB_OUTPUT | |
echo "json_image=$(ls rpi-imager-openhab.json)" >> $GITHUB_OUTPUT | |
- name: Archive openHABian 32bit image | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ steps.build.outputs.image32 }} | |
path: ${{ steps.build.outputs.image32 }} | |
- name: Archive openHABian 64bit image | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ steps.build.outputs.image64 }} | |
path: ${{ steps.build.outputs.image64 }} | |
- name: Archive openHABian json of image download | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ steps.build.outputs.json_image }} | |
path: ${{ steps.build.outputs.json_image }} | |
- name: Create release template | |
if: ${{ success() && github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} | |
uses: "marvinpinto/action-automatic-releases@v1.2.1" | |
with: | |
repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
title: "openHABian ${{ github.ref_name }}" | |
automatic_release_tag: "${{ github.ref_name }}" | |
prerelease: false | |
draft: true | |
files: | | |
${{ steps.build.outputs.image32 }} | |
${{ steps.build.outputs.image64 }} | |
${{ steps.build.outputs.json_image }} |