name: Build
on:
  pull_request:
    types:
      - opened
      - edited
      - ready_for_review
      - reopened
      - synchronize
  push:
  workflow_dispatch:

jobs:
  build:
    if: contains(github.event.head_commit.message, '[skip ci]') == false

    runs-on: ubuntu-20.04

    steps:
    - name: Checkout repository and submodules
      uses: actions/checkout@v3
      with:
        submodules: recursive

    - name: Package install
      run: |
        sudo add-apt-repository ppa:tkchia/build-ia16
        sudo apt update
        sudo apt install gcc-ia16-elf libi86-ia16-elf nasm upx qemu-system-x86 mtools util-linux bash

    - name: build
      run: ./ci_build.sh

    - name: test
      run: ./ci_test.sh

    - name: make snapshot name
      id: snapshotname
      run: |
        (
          today=`date -u +%F | tr '\n' '-'`
          s_sha=`echo -n ${GITHUB_SHA} | cut -c1-8`
          printf "fname=snapshot-%s%s\n" $today $s_sha >> $GITHUB_OUTPUT
        )

    - name: upload
      if: github.repository == 'FDOS/kernel' &&
        (github.event_name == 'push' || github.event.pull_request.merged == true)
      uses: actions/upload-artifact@v3
      with:
        name: ${{ steps.snapshotname.outputs.fname }}
        path: _output/*/*.???
