name: Release on: push: tags: - "v*" jobs: build_linux: name: Build Linux runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: Swatinem/rust-cache@v1 - run: | sudo apt-get update sudo apt-get install -y libspeechd-dev cargo build --release mv target linux - uses: actions/upload-artifact@v1 with: name: linux path: linux build_windows: name: Build Windows runs-on: windows-latest env: LIBCLANG_PATH: c:\program files\llvm\bin steps: - uses: actions/checkout@v2 - uses: Swatinem/rust-cache@v1 - run: | choco install -qy llvm cargo build --features tolk --features tts/tolk --release move target windows - uses: actions/upload-artifact@v1 with: name: windows path: windows build_uwp: name: Build UWP runs-on: windows-latest env: LIBCLANG_PATH: c:\program files\llvm\bin steps: - uses: actions/checkout@v2 - uses: Swatinem/rust-cache@v1 - run: | choco install -y llvm cargo build --release move target uwp move uwp\release\godot_tts.dll uwp\release\godot_tts.uwp.dll - uses: actions/upload-artifact@v1 with: name: uwp path: uwp build_macos: name: Build MacOS runs-on: macos-latest steps: - uses: actions/checkout@v2 - uses: Swatinem/rust-cache@v1 - run: | cargo build --release mv target macos - uses: actions/upload-artifact@v1 with: name: macos path: macos build_android: name: Build Android runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: lfs: true - uses: actions/cache@v2 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} restore-keys: ${{ runner.os }}-gradle - run: | ./gradlew assemble mv build android - uses: actions/upload-artifact@v1 with: name: android path: android build_ios: name: Build iOS runs-on: macos-latest steps: - uses: actions/checkout@v2 - uses: Swatinem/rust-cache@v1 - run: | rustup target add aarch64-apple-ios x86_64-apple-ios cargo install cargo-lipo cargo lipo --release mv target ios - uses: actions/upload-artifact@v1 with: name: ios path: ios package: name: Package runs-on: ubuntu-latest needs: [ build_linux, build_windows, build_uwp, build_macos, build_android, build_ios, ] steps: - uses: actions/checkout@v2 - uses: actions/download-artifact@v1 with: name: linux - uses: actions/download-artifact@v1 with: name: windows - uses: actions/download-artifact@v1 with: name: uwp - uses: actions/download-artifact@v1 with: name: macos - uses: actions/download-artifact@v1 with: name: android - uses: actions/download-artifact@v1 with: name: ios - run: | mkdir -p godot-tts/target/release cp linux/release/*.so godot-tts/target/release cp windows/release/*.dll godot-tts/target/release cp uwp/release/godot_tts.uwp.dll godot-tts/target/release cp macos/release/*.dylib godot-tts/target/release cp android/outputs/aar/godot-tts.aar godot-tts/ cp ios/universal/release/*.a godot-tts/target/release cp LICENSE godot-tts cp README.md godot-tts cp TTS.gd godot-tts.g* godot-tts rm godot-tts/*.gdnlib mv godot-tts/godot-tts.gdnlib.release godot-tts/godot-tts.gdnlib zip -r9 godot-tts godot-tts - uses: actions/create-release@v1 id: create_release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: Release ${{ github.ref }} draft: false prerelease: false - uses: actions/upload-release-asset@v1 id: upload-release-asset env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./godot-tts.zip asset_name: godot-tts.zip asset_content_type: application/zip