Skip to content

Commit

Permalink
chore: Deploy and upload native builds
Browse files Browse the repository at this point in the history
  • Loading branch information
PraxTube committed Jan 28, 2024
1 parent 104f275 commit fc400e1
Show file tree
Hide file tree
Showing 5 changed files with 209 additions and 8 deletions.
178 changes: 178 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,180 @@ jobs:
tag: ${{ github.ref }}
overwrite: true

release-linux:
runs-on: ubuntu-latest

steps:
- uses: olegtarasov/get-tag@v2.1.2
id: get_version
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-unknown-linux-gnu
- name: install dependencies
run: |
sudo apt-get update; sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev
- name: Build
run: |
cargo build --release --target x86_64-unknown-linux-gnu
- name: Prepare package
run: |
mkdir linux
cp target/x86_64-unknown-linux-gnu/release/${{ env.binary }} linux/
cp -r assets linux/
- name: Package as a zip
working-directory: ./linux
run: |
zip --recurse-paths ../${{ env.binary }}.zip .
- name: Upload binaries to artifacts
uses: actions/upload-artifact@v3
with:
path: ${{ env.binary }}.zip
name: linux
retention-days: 1

- name: Upload binaries to release
if: ${{ env.add_binaries_to_github_release == 'true' }}
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.binary }}.zip
asset_name: ${{ env.binary }}-linux-${{ steps.get_version.outputs.tag }}.zip
tag: ${{ github.ref }}
overwrite: true

release-windows:
runs-on: windows-latest

steps:
- uses: olegtarasov/get-tag@v2.1.2
id: get_version
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc

- name: Build
run: |
cargo build --release --target x86_64-pc-windows-msvc
- name: Prepare package
run: |
mkdir windows
cp target/x86_64-pc-windows-msvc/release/${{ env.binary }}.exe windows/
cp -r assets windows/
- name: Package as a zip
run: |
Compress-Archive -Path windows/* -DestinationPath ${{ env.binary }}.zip
- name: Upload binaries to artifacts
uses: actions/upload-artifact@v3
with:
path: ${{ env.binary }}.zip
name: windows
retention-days: 1

- name: Upload binaries to release
if: ${{ env.add_binaries_to_github_release == 'true' }}
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.binary }}.zip
asset_name: ${{ env.binary }}-windows-${{ steps.get_version.outputs.tag }}.zip
tag: ${{ github.ref }}
overwrite: true

release-macOS-intel:
runs-on: macOS-latest

steps:
- uses: olegtarasov/get-tag@v2.1.2
id: get_version
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-apple-darwin
- name: Environment Setup
run: |
export CFLAGS="-fno-stack-check"
export MACOSX_DEPLOYMENT_TARGET="10.9"
- name: Build
run: |
cargo build --release --target x86_64-apple-darwin
- name: Prepare Package
run: |
mkdir -p ${{ env.binary }}.app/Contents/MacOS
cp target/x86_64-apple-darwin/release/${{ env.binary }} ${{ env.binary }}.app/Contents/MacOS/
cp -r assets ${{ env.binary }}.app/Contents/MacOS/
hdiutil create -fs HFS+ -volname "${{ env.binary }}" -srcfolder ${{ env.binary }}.app ${{ env.binary }}-macOS-intel.dmg
- name: Upload binaries to artifacts
uses: actions/upload-artifact@v3
with:
path: ${{ env.binary }}-macOS-intel.dmg
name: macOS-intel
retention-days: 1

- name: Upload binaries to release
if: ${{ env.add_binaries_to_github_release == 'true' }}
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.binary }}-macOS-intel.dmg
asset_name: ${{ env.binary }}-macOS-intel-${{ steps.get_version.outputs.tag }}.dmg
tag: ${{ github.ref }}
overwrite: true

release-macOS-apple-silicon:
runs-on: macOS-latest

steps:
- uses: olegtarasov/get-tag@v2.1.2
id: get_version
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-apple-darwin
- name: Environment
# macOS 11 was the first version to support ARM
run: |
export MACOSX_DEPLOYMENT_TARGET="11"
- name: Build
run: |
cargo build --release --target aarch64-apple-darwin
- name: Prepare Package
run: |
mkdir -p ${{ env.binary }}.app/Contents/MacOS
cp target/aarch64-apple-darwin/release/${{ env.binary }} ${{ env.binary }}.app/Contents/MacOS/
cp -r assets ${{ env.binary }}.app/Contents/MacOS/
hdiutil create -fs HFS+ -volname "${{ env.binary }}-macOS-apple-silicon" -srcfolder ${{ env.binary }}.app ${{ env.binary }}-macOS-apple-silicon.dmg
- name: Upload binaries to artifacts
uses: actions/upload-artifact@v3
with:
path: ${{ env.binary }}-macOS-apple-silicon.dmg
name: macOS-apple-silicon
retention-days: 1

- name: Upload binaries to release
if: ${{ env.add_binaries_to_github_release == 'true' }}
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.binary }}-macOS-apple-silicon.dmg
asset_name: ${{ env.binary }}-macOS-apple-silicon-${{ steps.get_version.outputs.tag }}.dmg
tag: ${{ github.ref }}
overwrite: true

check-if-upload-to-itch-is-configured:
runs-on: ubuntu-latest
outputs:
Expand All @@ -84,6 +258,10 @@ jobs:
needs:
- check-if-upload-to-itch-is-configured
- release-wasm
- release-linux
- release-windows
- release-macOS-intel
- release-macOS-apple-silicon
if: ${{ needs.check-if-upload-to-itch-is-configured.outputs.should-upload == 'yes' }}

steps:
Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "insta-kill"
version = "0.1.4"
version = "0.1.5"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
Expand Down
31 changes: 29 additions & 2 deletions src/ui/game_over.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,26 @@ fn spawn_player_score(commands: &mut Commands, font: Handle<Font>, score: u32) -
commands.spawn(text_bundle).id()
}

fn spawn_prompt(commands: &mut Commands, font: Handle<Font>) -> Entity {
let text = "ENTER NAME:";
let text_style = TextStyle {
font,
font_size: 30.0,
color: Color::WHITE,
};
let text_bundle = TextBundle::from_sections([TextSection::new(text, text_style.clone())]);
commands
.spawn(text_bundle)
.insert(Style {
margin: UiRect {
top: Val::Px(75.0),
..default()
},
..default()
})
.id()
}

fn spawn_restart_text(commands: &mut Commands, font: Handle<Font>) -> Entity {
let text = "ESC to skip and restart".to_string();
let text_style = TextStyle {
Expand All @@ -88,6 +108,7 @@ fn spawn_restart_text(commands: &mut Commands, font: Handle<Font>) -> Entity {
fn spawn_text(commands: &mut Commands, font: Handle<Font>, score: u32) {
let title_text = spawn_title(commands, font.clone());
let score_text = spawn_player_score(commands, font.clone(), score);
let prompt_text = spawn_prompt(commands, font.clone());
let input_field = spawn_text_field(commands, font.clone());
let restart_text = spawn_restart_text(commands, font.clone());

Expand All @@ -96,7 +117,7 @@ fn spawn_text(commands: &mut Commands, font: Handle<Font>, score: u32) {
GameOverScreen,
NodeBundle {
style: Style {
top: Val::Percent(25.0),
top: Val::Percent(15.0),
width: Val::Percent(100.0),
flex_direction: FlexDirection::Column,
row_gap: Val::Vh(3.0),
Expand All @@ -108,7 +129,13 @@ fn spawn_text(commands: &mut Commands, font: Handle<Font>, score: u32) {
..default()
},
))
.push_children(&[title_text, score_text, input_field, restart_text]);
.push_children(&[
title_text,
score_text,
prompt_text,
input_field,
restart_text,
]);
}

fn spawn_game_over_screen(
Expand Down
4 changes: 0 additions & 4 deletions src/ui/text_field.rs
Original file line number Diff line number Diff line change
Expand Up @@ -104,10 +104,6 @@ pub fn spawn_text_field(commands: &mut Commands, font: Handle<Font>) -> Entity {
align_items: AlignItems::Center,
width: Val::Px((2.0 * CHAR_SIZE + CHAR_OFFSET) * CHAR_PIXEL_FACTOR),
height: Val::Px(42.0),
margin: UiRect {
top: Val::Px(75.0),
..default()
},
..default()
},
background_color: TRANSPARENT_BACKGROUND.into(),
Expand Down

0 comments on commit fc400e1

Please sign in to comment.