permissions: contents: write actions: read checks: write deployments: write issues: write packages: write pull-requests: write statuses: write on: release: types: [created] jobs: release: name: release ${{ matrix.target }} runs-on: ubuntu-latest strategy: fail-fast: false matrix: target: # Temporarily disabling Windows compilation # - x86_64-pc-windows-gnu - x86_64-unknown-linux-musl steps: - uses: actions/checkout@v2 - name: Set up Rust uses: actions-rs/toolchain@v1 with: toolchain: stable override: true - name: Install musl-gcc run: | sudo apt-get update sudo apt-get install -y musl-tools - name: Install target run: rustup target add ${{ matrix.target }} - name: Install dependencies run: sudo apt-get update && sudo apt-get install -y libxkbcommon-x11-0 libglib2.0-dev libgl1-mesa-dev libglu1-mesa-dev libatk1.0-dev libgdk-pixbuf2.0-dev libwebkit2gtk-4.0-dev libgtk-3-dev - name: Verify installed dependencies run: | ldconfig -p | grep xkbcommon ldconfig -p | grep libGL ldconfig -p | grep libGLU ldconfig -p | grep libatk-1.0.so.0 ldconfig -p | grep libgdk_pixbuf-2.0.so.0 ldconfig -p | grep libwebkit2gtk-4.0.so.37 ldconfig -p | grep libgtk-3.so.0 - name: Compile the app run: | echo "Compiling for target: ${{ matrix.target }}" RUST_BACKTRACE=1 cargo build --release --target ${{ matrix.target }} - name: Create tarball run: | release_tag=${{ github.event.release.tag_name }} tar -czvf calcifer_v${release_tag}.tar.gz -C target/${{ matrix.target }}/release calcifer - name: Upload release assets uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} asset_path: calcifer_v${{ github.event.release.tag_name }}.tar.gz asset_name: calcifer_v${{ github.event.release.tag_name }}.tar.gz asset_content_type: application/gzip