Skip to content

Commit

Permalink
octet-stream
Browse files Browse the repository at this point in the history
  • Loading branch information
lgrn committed Sep 30, 2024
1 parent 0b2ddbe commit 5003536
Showing 1 changed file with 55 additions and 88 deletions.
143 changes: 55 additions & 88 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
@@ -1,118 +1,85 @@
name: Release on Push to Main

on:
push:
branches:
- main

jobs:
build-linux:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Checkout code
uses: actions/checkout@v3

- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable

- name: Build project
run: cargo build --release
- name: Build project
run: cargo build --release

- name: Verify Build Output
run: ls -lh target/release/
- name: Verify Build Output
run: ls -lh target/release/

- name: Archive Linux binary
run: |
mkdir -p dist
cp target/release/valheim-motd dist/valheim-motd-linux
tar -czvf dist/valheim-motd-linux.tar.gz -C dist valheim-motd-linux
- name: Archive Linux binary
run: |
tar -czvf valheim-motd-linux.tar.gz target/release/valheim-motd
- name: Upload Linux binary
uses: actions/upload-artifact@v3
with:
name: linux-binary
path: dist/valheim-motd-linux.tar.gz
- name: Upload Linux binary
uses: actions/upload-artifact@v3
with:
name: linux-binary
path: valheim-motd-linux.tar.gz

build-macos:
runs-on: macos-latest

steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Checkout code
uses: actions/checkout@v3

- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable

- name: Build project
run: cargo build --release
- name: Build project
run: cargo build --release

- name: Verify Build Output
run: ls -lh target/release/
- name: Verify Build Output
run: ls -lh target/release/

- name: Archive macOS binary
run: |
mkdir -p dist
cp target/release/valheim-motd dist/valheim-motd-macos
tar -czvf dist/valheim-motd-macos.tar.gz -C dist valheim-motd-macos
- name: Archive macOS binary
run: |
tar -czvf valheim-motd-macos.tar.gz target/release/valheim-motd
- name: Upload macOS binary
uses: actions/upload-artifact@v3
with:
name: macos-binary
path: dist/valheim-motd-macos.tar.gz
- name: Upload macOS binary
uses: actions/upload-artifact@v3
with:
name: macos-binary
path: valheim-motd-macos.tar.gz

release:
runs-on: ubuntu-latest
needs: [build-linux, build-macos]

steps:
- name: Download Linux binary
uses: actions/download-artifact@v3
with:
name: linux-binary
path: dist

- name: Download macOS binary
uses: actions/download-artifact@v3
with:
name: macos-binary
path: dist

- name: Create Release
env:
TAG_NAME: v$(date +%F)
run: |
# Create a new release
response=$(curl -s -X POST https://api.github.com/repos/lgrn/${{ github.repository }}/releases \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{
"tag_name": "'"$TAG_NAME"'",
"target_commitish": "'"${{ github.sha }}"'",
"name": "'"$TAG_NAME"'",
"body": "Automated release for '"$TAG_NAME"'",
"draft": false,
"prerelease": false
}')
# Extract the release ID
release_id=$(echo "$response" | jq -r '.id')
# Upload the Linux binary
curl -s -X POST \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Content-Type: application/gzip" \
--data-binary @dist/valheim-motd-linux.tar.gz \
"https://uploads.github.com/repos/lgrn/${{ github.repository }}/releases/$release_id/assets?name=valheim-motd-linux.tar.gz"
# Upload the macOS binary
curl -s -X POST \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Content-Type: application/gzip" \
--data-binary @dist/valheim-motd-macos.tar.gz \
"https://uploads.github.com/repos/lgrn/${{ github.repository }}/releases/$release_id/assets?name=valheim-motd-macos.tar.gz"
- name: Download Linux binary
uses: actions/download-artifact@v3
with:
name: linux-binary

- name: Download macOS binary
uses: actions/download-artifact@v3
with:
name: macos-binary

- name: Install GitHub CLI
run: sudo apt-get install -y gh

- name: Create Release and Upload Binaries
env:
TAG_NAME: v$(date +%F)
GH_TOKEN: ${{ github.token }}
run: |
gh release create $TAG_NAME valheim-motd-linux.tar.gz valheim-motd-macos.tar.gz --title "$TAG_NAME" --notes "Automated release for $TAG_NAME"

0 comments on commit 5003536

Please sign in to comment.