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 mkdir linux mv target/release/*.so linux - uses: actions/upload-artifact@v1 with: name: linux path: linux build_linux_32: name: Build Linux (32 bits) runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: Swatinem/rust-cache@v1 - run: | sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install -y libspeechd-dev:i386 gcc-multilib rustup target add i686-unknown-linux-gnu cargo build --release --target i686-unknown-linux-gnu mkdir linux-32 mv target/i686-unknown-linux-gnu/release/*.so linux-32 - uses: actions/upload-artifact@v1 with: name: linux-32 path: linux-32 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 --release mkdir windows move target\release\*.dll windows - uses: actions/upload-artifact@v1 with: name: windows path: windows build_windows_32: name: Build Windows (32 bits) 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 rustup target add i686-pc-windows-msvc cargo build --release --target i686-pc-windows-msvc mkdir windows-32 move target\i686-pc-windows-msvc\release\*.dll windows-32 - uses: actions/upload-artifact@v1 with: name: windows-32 path: windows-32 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 mkdir uwp move target\release\godot_tts.dll uwp\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 mkdir macos mv target/release/*.dylib 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 mkdir ios mv target/universal/release/*.a ios - uses: actions/upload-artifact@v1 with: name: ios path: ios package: name: Package runs-on: ubuntu-latest needs: [ build_linux, build_linux_32, build_windows, build_windows_32, 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: linux-32 - uses: actions/download-artifact@v1 with: name: windows - uses: actions/download-artifact@v1 with: name: windows-32 - 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/32 cp linux/*.so godot-tts/target/release cp linux-32/*.so godot-tts/target/release/32 cp windows/*.dll godot-tts/target/release cp windows-32/*.dll godot-tts/target/release/32 cp uwp/*.dll godot-tts/target/release cp macos/*.dylib godot-tts/target/release cp android/outputs/aar/godot-tts.aar godot-tts/ cp ios/*.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