name: Build on: push: branches: [ "main" ] pull_request: branches: [ "main" ] permissions: contents: write jobs: build: # continue-on-error: true strategy: fail-fast: false matrix: include: - platform: android os: ubuntu-latest targets: aab,apk - platform: windows os: windows-latest targets: exe - platform: linux os: ubuntu-latest targets: appimage - platform: macos os: macos-latest targets: dmg # - platform: ios # os: macos-latest # targets: ipa runs-on: ${{ matrix.os }} steps: - name: checkout uses: actions/checkout@v3 - name: Cache Flutter dependencies uses: actions/cache@v2 with: path: | ~/.pub-cache key: ${{ runner.os }}-pub-cache-${{ hashFiles('**/pubspec.lock') }} restore-keys: | ${{ runner.os }}-pub-cache- - name: Cache Go dependencies uses: actions/cache@v2 with: path: | ~/go/pkg/mod key: ${{ runner.os }}-go-deps-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go-deps- - name: Setup Flutter uses: subosito/flutter-action@v2 with: flutter-version: '3.10.6' channel: 'stable' - name: Setup Go environment uses: actions/setup-go@v4.0.1 - name: Install GCC if: matrix.os == 'macos-latest' run: brew install gcc - name: Set up MinGW if: matrix.os != 'macos-latest' uses: egor-tensin/setup-mingw@v2 with: platform: x64 - name: Setup Java if: matrix.platform == 'android' uses: actions/setup-java@v3 with: distribution: "zulu" java-version: 11 - name: Setup Android SDK if: matrix.platform == 'android' uses: android-actions/setup-android@v2 - name: Get Dependencies run: | make get - name: Generate run: | make gen make translate - name: Generate Libs ${{ matrix.platform }} run: | make ${{ matrix.platform }}-libs - name: Release ${{ matrix.platform }} run: | make ${{ matrix.platform }}-release - name: Copy to out run: | mkdir out IFS=',' read -r -a EXT_ARRAY <<< "${{ matrix.targets }}" # Loop over extensions for EXT in "${EXT_ARRAY[@]}"; do # Find all files with this extension in SRC_DIR, and copy them to DST_DIR find "." -type f -name "*.$EXT" -exec cp {} "out" \; done - uses: actions/upload-artifact@v3 with: name: ${{ matrix.platform }} path: ./out retention-days: 2 - name: Create or Update Draft Release uses: softprops/action-gh-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: files: ./out/* name: "draft" tag_name: "draft" prerelease: true overwrite: true