jens-maus/yam

View on GitHub
.github/workflows/nightly.yml

Summary

Maintainability
Test Coverage
name: nightly
on:
  workflow_dispatch:
  schedule:
  - cron: '0 1 * * *' # run at 1 AM UTC

jobs:
  repo-change-check:
    name: repository change check
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v4
      - id: commit-check
        run: 'echo ::set-output name=has-commits::$(git --no-pager log --pretty=oneline --since="24 hours ago" | wc -l)'
    outputs:
      has-commits: ${{ steps.commit-check.outputs.has-commits }}

  build:
    runs-on: ubuntu-20.04
    needs: repo-change-check
    timeout-minutes: 480

    strategy:
      fail-fast: false

    steps:
    - uses: actions/checkout@v4

    - name: setup dependencies
      run: |
        sudo dpkg --add-architecture i386
        sudo apt-get update -y -qq || true
        sudo apt-get -qq install libc6:i386
        sudo ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4

    - name: setup env
      run : |
        echo "DATE=$(date +%Y%m%d)" >>$GITHUB_ENV
        echo "GITHUB_SHA7=$(echo ${GITHUB_SHA::7})" >>$GITHUB_ENV
        echo YAMVER=$(grep '#define __YAM_VERSION' src/YAM_global.c | cut -d '"' -f2 | tr -d ".") >>$GITHUB_ENV

    - name: install adtools build env
      run: |
        DOWNLOAD_PATH=https://github.com/adtools/adtools/releases/download/20170213
        curl -L ${DOWNLOAD_PATH}/adtools-utils.tar.bz2 | sudo tar xj -C /
        curl -L ${DOWNLOAD_PATH}/adtools-m68k-amigaos.tar.bz2 | sudo tar xj -C /
        curl -L ${DOWNLOAD_PATH}/adtools-ppc-amigaos.tar.bz2 | sudo tar xj -C /
        curl -L ${DOWNLOAD_PATH}/adtools-ppc-morphos.tar.bz2 | sudo tar xj -C /
        curl -L ${DOWNLOAD_PATH}/adtools-ppc-aros.tar.bz2 | sudo tar xj -C /
        curl -L ${DOWNLOAD_PATH}/adtools-i386-aros.tar.bz2 | sudo tar xj -C /
        curl -L ${DOWNLOAD_PATH}/adtools-x86_64-aros.tar.bz2 | sudo tar xj -C /

    - name: cleanup old action artifacts
      run: .github/workflows/purge_artifacts.sh ${{ secrets.GITHUB_TOKEN }}

    #- name: remote debug tmate session
    #  uses: mxschmitt/action-tmate@v1
    #  if: matrix.platform == 'os4'

    - name: build YAM nightlies
      timeout-minutes: 480
      run: |
        export PATH=/usr/local/amiga/bin:/opt/m68k-amigaos/bin:/opt/ppc-amigaos/bin:/opt/ppc-morphos/bin:${PATH}
        make -j1 nightly

    - name: upload AmigaOS4 nightly build archive
      uses: WebFreak001/deploy-nightly@v3.1.0
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: https://uploads.github.com/repos/jens-maus/yam/releases/35749453/assets{?name,label}
        release_id: 35749453
        asset_path: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-AmigaOS4.lha
        asset_name: YAM${{ env.YAMVER }}dev-$$-AmigaOS4.lha
        asset_content_type: application/x-lzh-compressed
        max_releases: 3

    - name: upload AmigaOS4 nightly build archive [debug]
      uses: WebFreak001/deploy-nightly@v3.1.0
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: https://uploads.github.com/repos/jens-maus/yam/releases/35749453/assets{?name,label}
        release_id: 35749453
        asset_path: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-AmigaOS4-debug.lha
        asset_name: YAM${{ env.YAMVER }}dev-$$-AmigaOS4-debug.lha
        asset_content_type: application/x-lzh-compressed
        max_releases: 3

    - name: upload AmigaOS3 nightly build archive
      uses: WebFreak001/deploy-nightly@v3.1.0
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: https://uploads.github.com/repos/jens-maus/yam/releases/35749453/assets{?name,label}
        release_id: 35749453
        asset_path: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-AmigaOS3.lha
        asset_name: YAM${{ env.YAMVER }}dev-$$-AmigaOS3.lha
        asset_content_type: application/x-lzh-compressed
        max_releases: 3

    - name: upload AmigaOS3 nightly build archive [debug]
      uses: WebFreak001/deploy-nightly@v3.1.0
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: https://uploads.github.com/repos/jens-maus/yam/releases/35749453/assets{?name,label}
        release_id: 35749453
        asset_path: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-AmigaOS3-debug.lha
        asset_name: YAM${{ env.YAMVER }}dev-$$-AmigaOS3-debug.lha
        asset_content_type: application/x-lzh-compressed
        max_releases: 3

    - name: upload MorphOS nightly build archive
      uses: WebFreak001/deploy-nightly@v3.1.0
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: https://uploads.github.com/repos/jens-maus/yam/releases/35749453/assets{?name,label}
        release_id: 35749453
        asset_path: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-MorphOS.lha
        asset_name: YAM${{ env.YAMVER }}dev-$$-MorphOS.lha
        asset_content_type: application/x-lzh-compressed
        max_releases: 3

    - name: upload MorphOS nightly build archive [debug]
      uses: WebFreak001/deploy-nightly@v3.1.0
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: https://uploads.github.com/repos/jens-maus/yam/releases/35749453/assets{?name,label}
        release_id: 35749453 
        asset_path: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-MorphOS-debug.lha
        asset_name: YAM${{ env.YAMVER }}dev-$$-MorphOS-debug.lha
        asset_content_type: application/x-lzh-compressed
        max_releases: 3

    - name: upload AmigaOS4 files as workflow artifact [release]
      uses: actions/upload-artifact@v4
      with:
        path: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-AmigaOS4.lha*
        name: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-${{ env.GITHUB_SHA7 }}-AmigaOS4.lha
      continue-on-error: true

    - name: upload AmigaOS4 files as workflow artifact [debug]
      uses: actions/upload-artifact@v4
      with:
        path: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-AmigaOS4-debug.lha*
        name: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-${{ env.GITHUB_SHA7 }}-AmigaOS4-debug.lha
      continue-on-error: true

    - name: upload AmigaOS3 files as workflow artifact [release]
      uses: actions/upload-artifact@v4
      with:
        path: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-AmigaOS3.lha*
        name: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-${{ env.GITHUB_SHA7 }}-AmigaOS3.lha
      continue-on-error: true

    - name: upload AmigaOS3 files as workflow artifact [debug]
      uses: actions/upload-artifact@v4
      with:
        path: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-AmigaOS3-debug.lha*
        name: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-${{ env.GITHUB_SHA7 }}-AmigaOS3-debug.lha
      continue-on-error: true

    - name: upload MorphOS files as workflow artifact [release]
      uses: actions/upload-artifact@v4
      with:
        path: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-MorphOS.lha*
        name: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-${{ env.GITHUB_SHA7 }}-MorphOS.lha
      continue-on-error: true

    - name: upload MorphOS files as workflow artifact [debug]
      uses: actions/upload-artifact@v4
      with:
        path: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-MorphOS-debug.lha*
        name: YAM${{ env.YAMVER }}dev-${{ env.DATE }}-${{ env.GITHUB_SHA7 }}-MorphOS-debug.lha
      continue-on-error: true