main.yml 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. name: Build and Release Metroflip
  2. on:
  3. push:
  4. tags:
  5. - 'v*.*.*'
  6. jobs:
  7. build:
  8. runs-on: ubuntu-latest
  9. steps:
  10. - name: Checkout Repository
  11. uses: actions/checkout@v3
  12. - name: Set up Python
  13. uses: actions/setup-python@v4
  14. with:
  15. python-version: 3.x
  16. - name: Install UFBT
  17. run: pip install ufbt
  18. - name: Parse Version from Manifest
  19. id: version
  20. run: |
  21. VERSION=$(grep '^version:' manifest.yml | awk '{print $2}')
  22. echo "VERSION=${VERSION}" >> $GITHUB_ENV
  23. echo "::set-output name=version::${VERSION}"
  24. - name: Build Metroflip
  25. run: |
  26. ufbt update
  27. ufbt fap_metroflip
  28. - name: Prepare Release Directory
  29. run: |
  30. mkdir -p releases/${VERSION}
  31. mv build/fap/metroflip.fap releases/${VERSION}/metroflip.fap
  32. - name: Upload Build Artifact
  33. uses: actions/upload-artifact@v3
  34. with:
  35. name: metroflip-${{ env.VERSION }}
  36. path: releases/${{ env.VERSION }}/metroflip.fap
  37. release:
  38. needs: build
  39. runs-on: ubuntu-latest
  40. steps:
  41. - name: Download Build Artifact
  42. uses: actions/download-artifact@v3
  43. with:
  44. name: metroflip-${{ env.VERSION }}
  45. - name: Create GitHub Release
  46. uses: actions/create-release@v1
  47. env:
  48. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  49. with:
  50. tag_name: ${{ github.ref_name }}
  51. release_name: Metroflip ${{ github.ref_name }}
  52. draft: false
  53. prerelease: false
  54. files: releases/${{ env.VERSION }}/metroflip.fap
  55. body: |
  56. ## Changes
  57. See the [CHANGELOG.md](https://github.com/luu176/Metroflip/blob/${{ github.ref_name }}/CHANGELOG.md) for details.