name: Compile QuakeC and Publish Release
on: [push]
jobs:
  Compile-QC:
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/main'
    steps:
      - uses: actions/checkout@v3
      - name: Clone Repository
        working-directory: ./tools
        run: |
          sudo -i
          ./qc-compiler-lin.sh
          echo "QC COMPILE STATUS - ${{ job.status }}."
      - name: Zip Progs
        working-directory: ./build
        run: |
          zip -r -j fte-nzp-qc.zip fte/*
          zip -r -j standard-nzp-qc.zip standard/*
      - name: Generate Build Date
        id: date
        run: echo "::set-output name=date::$(date +'%Y-%m-%d-%H-%M-%S')"
      - name: Delete Old Release
        uses: dev-drprasad/delete-tag-and-release@v0.2.1
        with:
          delete_release: true
          tag_name: bleeding-edge
        env:
          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: bleeding-edge
          release_name: Automated Release ${{ steps.date.outputs.date }}
          body: |
            This is a **bleeding edge** NZ:P QuakeC release, stability is not guarenteed and you may need to grab an updated asset release if this update depends on new models/textures/etc.

            To install:
            - Grab the .ZIP archive for your desired platform below (fte-nzp-qc.zip for PC platforms/WebGL, standard-nzp-qc.zip for everything else..).
            - Extract the contents of the .ZIP archive to your nzp folder (Example: copy `progs.dat` and `progs.lno` to `PSP/GAME/nzportable/nzp`).
          draft: true
          prerelease: false
      - name: Upload STANDARD QC
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ./build/standard-nzp-qc.zip
          asset_name: standard-nzp-qc.zip
          asset_content_type: application/zip
      - name: Upload FTE QC
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ./build/fte-nzp-qc.zip
          asset_name: fte-nzp-qc.zip
          asset_content_type: application/zip
      - name: Publish Release
        uses: StuYarrow/publish-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          id: ${{ steps.create_release.outputs.id }}
