buildbrain/.github/workflows/build.yml
2023-03-21 17:00:22 +09:00

80 lines
2.7 KiB
YAML

name: Build
on:
push:
branches: ci*
tags: '*'
jobs:
create_release:
name: Create release
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: false
- name: Generate release name
id: release_name
# https://github.community/t/how-to-get-just-the-tag-name/16241/4
run: echo ::set-output name=name::${GITHUB_REF/refs\/*s\//}
- name: Generate changes file
uses: sarnold/gitchangelog-action@master
with:
config_file: .gitchangelog.rc
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Create release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.release_name.outputs.name }}-tag
release_name: ${{ steps.release_name.outputs.name }}
body_path: CHANGES.md
draft: false
prerelease: true
build-sd:
runs-on: ubuntu-20.04
needs: [create_release]
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Make /opt writable
run: sudo chown "$(whoami):$(whoami)" /opt
- name: Install cegcc
run: |
wget -O cegcc.zip https://github.com/brain-hackers/cegcc-build/releases/download/2022-04-11-133546/cegcc-2022-04-11-133546.zip
unzip -q cegcc.zip
cp -r cegcc /opt/
- name: Workaround for apt update failure
run: sudo rm /etc/apt/sources.list.d/github_git-lfs.*
- name: Install deps
run: sudo apt update && sudo apt install kpartx build-essential bison flex libncurses5-dev gcc-arm-linux-gnueabi qemu-user-static debootstrap
- name: Configure for Linux
run: make ldefconfig
- name: Build Linux
run: make lbuild
- name: Build Debian Root
run: make minimal
- name: Generate image name
id: image_name
run: echo ::set-output name=name::sdimage-${GITHUB_REF/refs\/*s\//}
- name: Build SD image
run: make image/sd.img && mv image/sd.img ${{ steps.image_name.outputs.name }}.img
- name: Compress
run: zip ${{ steps.image_name.outputs.name }}.zip ${{ steps.image_name.outputs.name }}.img
- name: Upload the image
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: ${{ steps.image_name.outputs.name }}.zip
asset_name: ${{ steps.image_name.outputs.name }}.zip
asset_content_type: application/zip