--- name: pre-release on: push: branches: - "main" jobs: compile: name: "Compilation" strategy: matrix: os: [windows-2022, ubuntu-22.04, macos-12] features: ["debug,globe_view", "globe_view", "debug,render", "render", "debug", ""] runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v3 - name: Install rust toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true - name: Build binary run: | cargo build --release --no-default-features --features=${{ matrix.features }} - name: Upload debug & globe_view binary uses: actions/upload-artifact@v3 if: ${{ matrix.features == 'debug,globe_view' }} with: name: worlds-rs-${{ matrix.os }}-debug-globe_view path: | target/release/worlds-sim-rust.exe target/release/worlds-sim-rust - name: Upload debug & render binary uses: actions/upload-artifact@v3 if: ${{ matrix.features == 'debug,render' }} with: name: worlds-rs-${{ matrix.os }}-debug-render path: | target/release/worlds-sim-rust.exe target/release/worlds-sim-rust - name: Upload non-debug binary uses: actions/upload-artifact@v3 if: ${{ !contains(matrix.features, ',') && matrix.features != '' }} with: name: worlds-rs-${{ matrix.os }}-${{ matrix.features }} path: | target/release/worlds-sim-rust.exe target/release/worlds-sim-rust - name: Upload basic binary uses: actions/upload-artifact@v3 if: ${{ matrix.features == '' }} with: name: worlds-rs-${{ matrix.os }}-minimal path: | target/release/worlds-sim-rust.exe target/release/worlds-sim-rust create-tag: name: "Create tag" runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - uses: rickstaa/action-create-tag@v1 with: tag: "pre-release" message: "Latest pre-release" force_push_tag: true create-release: name: "Create release" runs-on: ubuntu-22.04 needs: [compile, create-tag] steps: - uses: actions/download-artifact@v3 with: name: worlds-rs-windows-2022-debug-globe_view path: ~/download/worlds-rs-windows-2022-debug-globe_view.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-windows-2022-debug-render path: ~/download/worlds-rs-windows-2022-debug-render.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-windows-2022-debug path: ~/download/worlds-rs-windows-2022-debug.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-windows-2022-globe_view path: ~/download/worlds-rs-windows-2022-globe_view.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-windows-2022-render path: ~/download/worlds-rs-windows-2022-render.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-windows-2022-minimal path: ~/download/worlds-rs-windows-2022-minimal.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-ubuntu-22.04-debug-globe_view path: ~/download/worlds-rs-ubuntu-22.04-debug-globe_view.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-ubuntu-22.04-debug-render path: ~/download/worlds-rs-ubuntu-22.04-debug-render.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-ubuntu-22.04-debug path: ~/download/worlds-rs-ubuntu-22.04-debug.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-ubuntu-22.04-globe_view path: ~/download/worlds-rs-ubuntu-22.04-globe_view.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-ubuntu-22.04-render path: ~/download/worlds-rs-ubuntu-22.04-render.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-ubuntu-22.04-minimal path: ~/download/worlds-rs-ubuntu-22.04-minimal.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-macos-12-debug-globe_view path: ~/download/worlds-rs-macos-12-debug-globe_view.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-macos-12-debug-render path: ~/download/worlds-rs-macos-12-debug-render.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-macos-12-debug path: ~/download/worlds-rs-macos-12-debug.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-macos-12-globe_view path: ~/download/worlds-rs-macos-12-globe_view.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-macos-12-render path: ~/download/worlds-rs-macos-12-render.zip - uses: actions/download-artifact@v3 with: name: worlds-rs-macos-12-minimal path: ~/download/worlds-rs-macos-12-minimal.zip - name: List artifacts run: | ls -la --color=auto /home/runner/download/ - name: Upload binaries uses: softprops/action-gh-release@v1 with: files: /home/runner/download/* prerelease: true tag_name: "pre-release" generate_release_notes: true