main.yml 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. name: UFBT Build and Test
  2. on:
  3. push:
  4. branches:
  5. - main
  6. pull_request:
  7. branches:
  8. - main
  9. jobs:
  10. build:
  11. name: Build Application
  12. runs-on: ubuntu-latest
  13. steps:
  14. - name: Checkout Repository
  15. uses: actions/checkout@v3
  16. - name: Set up Python
  17. uses: actions/setup-python@v4
  18. with:
  19. python-version: '3.x'
  20. - name: Install UFBT
  21. run: |
  22. python3 -m pip install --upgrade pip
  23. pip install ufbt
  24. - name: Initialize UFBT Environment
  25. run: |
  26. ufbt update
  27. ufbt vscode_dist
  28. - name: Build FAP Application
  29. run: ufbt faps
  30. - name: Upload Build Artifacts
  31. uses: actions/upload-artifact@v3
  32. with:
  33. name: metroflip-fap
  34. path: /home/runner/.ufbt/build/metroflip.fap
  35. upload:
  36. name: Upload FAP to Existing Release
  37. runs-on: ubuntu-latest
  38. needs: build # This job depends on the "build" job
  39. if: github.event_name != 'pull_request' # Ensure it doesn't upload on PR
  40. steps:
  41. - name: Checkout Repository
  42. uses: actions/checkout@v3
  43. - name: Get Release Information
  44. id: release
  45. run: |
  46. REPO="luu176/Metroflip" # Change this to your repository name
  47. VERSION="v0.4.0" # Specify your version
  48. RELEASE=$(curl -s "https://api.github.com/repos/$REPO/releases/tags/$VERSION")
  49. echo "::set-output name=upload_url::$(echo $RELEASE | jq -r .upload_url | sed -e "s/{?name,label}//")"
  50. - name: Download FAP Artifact
  51. uses: actions/download-artifact@v3
  52. with:
  53. name: metroflip-fap
  54. - name: Upload FAP to Existing Release
  55. uses: actions/upload-release-asset@v1
  56. with:
  57. upload_url: ${{ steps.release.outputs.upload_url }}
  58. asset_path: /home/runner/.ufbt/build/metroflip.fap
  59. asset_name: metroflip-${{ github.sha }}.fap
  60. asset_content_type: application/octet-stream