name: Build and Publish FAP to Release on: workflow_dispatch: jobs: build-and-publish: name: Build and Publish FAP to Latest Release runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.x' - name: Install UFBT run: | python3 -m pip install --upgrade pip pip install ufbt - name: Initialize UFBT Environment run: | ufbt update ufbt vscode_dist - name: Build FAP Applications run: ufbt faps - name: Archive Build Outputs run: tar -czf build-output.tar.gz build/ - name: Get Latest Release Info id: get-release uses: octokit/request-action@v2 with: route: GET /repos/${{ github.repository }}/releases/latest continue-on-error: true - name: Create a New Release (if latest does not exist) if: steps.get-release.outputs.status == '404' id: create-release uses: actions/create-release@v1 with: tag_name: latest release_name: Latest Release draft: false prerelease: false generate_release_notes: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload Build Artifacts to Release uses: actions/upload-release-asset@v1 with: upload_url: ${{ steps.get-release.outputs.data.html_url || steps.create-release.outputs.upload_url }} asset_path: build-output.tar.gz asset_name: build-output.tar.gz asset_content_type: application/gzip env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}