Ver Fonte

Create build&push.yml

Luu há 1 ano atrás
pai
commit
5e3dfe4874
1 ficheiros alterados com 64 adições e 0 exclusões
  1. 64 0
      .github/workflows/build&push.yml

+ 64 - 0
.github/workflows/build&push.yml

@@ -0,0 +1,64 @@
+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 }}