name: Build and Publish Release
on: [push]
jobs:
  Compile-3ds:
    runs-on: ubuntu-latest
    outputs:
      o3ds_link: ${{ steps.zip.outputs.zip }}
    container:
      image: devkitpro/devkitarm
    steps:
      - uses: actions/checkout@v2
      - name: Install Packages and update picaGL
        run: |
          git clone https://github.com/masterfeizz/picaGL.git
          cd picaGL
          git checkout revamp
          mkdir clean
          make install
      - name: Build
        working-directory: ./
        run: |
          make -f Makefile
      - name: Zip
        working-directory: ./
        run: |
          zip -r ctr-nzp-3dsx.zip nzportable.3dsx nzportable.smdh
      - 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 .3dsx release, stability is not guarenteed.
            To install:
            - Grab the .ZIP archive (ctr-nzp-3dsx.zip)
            - Extract the contents of the .ZIP archive and copy it to /3ds/nzportable on your SD Card.
          draft: true
          prerelease: false
      - name: Upload 3DS Archive
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ./ctr-nzp-3dsx.zip
          asset_name: ctr-nzp-3dsx.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 }}