Skip to content

Commit bda1c55

Browse files
committed
deployment actions
1 parent dee63dc commit bda1c55

File tree

5 files changed

+188
-0
lines changed

5 files changed

+188
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Release - FreeBSD-x86_64
2+
description: |
3+
Build and release the FreeBSD x86_64 binary.
4+
5+
runs:
6+
using: "composite"
7+
steps:
8+
- uses: actions/checkout@v3
9+
- name: Build in FreeBSD
10+
uses: vmactions/freebsd-vm@v1.2.0
11+
with:
12+
release: 14.2
13+
usesh: true
14+
prepare: |
15+
pkg install -y rust zip zlib openssl
16+
17+
run: |
18+
cargo build --release
19+
mkdir -p builds
20+
zip -j mvt-server-freebsd-x86_64.zip target/release/mvt-server
21+
zip -r mvt-server-freebsd-x86_64.zip static
22+
mkdir -p builds
23+
mv mvt-server-freebsd-x86_64.zip builds/
24+
cargo clean
25+
26+
- name: 'Upload Artifact'
27+
uses: actions/upload-artifact@v3
28+
with:
29+
name: release-builds
30+
path: builds/mvt-server-freebsd-x86_64.zip
31+
retention-days: 1
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Release - Linux-x86_64-gnu
2+
description: |
3+
Build and release the Linux x86_64-gnu binary.
4+
5+
runs:
6+
using: "composite"
7+
steps:
8+
- name: Checkout
9+
uses: actions/checkout@v3
10+
11+
- name: Build binary
12+
uses: houseabsolute/actions-rust-cross@v0
13+
with:
14+
command: build
15+
target: x86_64-unknown-linux-gnu
16+
args: "--release"
17+
strip: true
18+
19+
- name: Create ZIP (Posix)
20+
shell: bash
21+
run: |
22+
zip -j mvt-server-linux-gnu-x86_64.zip target/x86_64-unknown-linux-gnu/release/mvt-server
23+
mkdir -p builds
24+
mv mvt-server-linux-gnu-x86_64.zip builds/
25+
26+
- name: "Upload Artifact"
27+
uses: actions/upload-artifact@v3
28+
with:
29+
name: release-builds
30+
path: builds/mvt-server-linux-gnu-x86_64.zip
31+
retention-days: 1
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Release - macOS-x86_64
2+
description: |
3+
Build and release the macOS x86_64 binary.
4+
5+
runs:
6+
using: "composite"
7+
steps:
8+
- name: Checkout
9+
uses: actions/checkout@v3
10+
11+
- name: Build binary
12+
uses: houseabsolute/actions-rust-cross@v0
13+
with:
14+
command: both
15+
target: x86_64-apple-darwin
16+
args: "--release"
17+
strip: true
18+
19+
- name: Create ZIP (macOS)
20+
shell: bash
21+
run: |
22+
zip -j mvt-server-darwin-x86_64.zip target/x86_64-apple-darwin/release/mvt-server
23+
mkdir -p builds
24+
mv mvt-server-darwin-x86_64.zip builds/
25+
26+
- name: "Upload Artifact"
27+
uses: actions/upload-artifact@v3
28+
with:
29+
name: release-builds
30+
path: builds/mvt-server-darwin-x86_64.zip
31+
retention-days: 1
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Release - Windows-x86_64
2+
description: |
3+
Build and release the Windows x86_64 binary.
4+
5+
runs:
6+
using: "composite"
7+
steps:
8+
- name: Checkout
9+
uses: actions/checkout@v3
10+
11+
- name: Build binary
12+
uses: houseabsolute/actions-rust-cross@v0
13+
with:
14+
command: both
15+
target: x86_64-pc-windows-msvc
16+
args: "--release"
17+
strip: true
18+
19+
- name: Create ZIP (Windows)
20+
shell: pwsh
21+
run: |
22+
Compress-Archive -Path target/x86_64-pc-windows-msvc/release/mvt-server.exe -Destination mvt-server-windows-x86_64.zip
23+
if (!(Test-Path -Path "builds")) {
24+
New-Item -ItemType Directory -Path "builds"
25+
}
26+
Move-Item -Path mvt-server-windows-x86_64.zip -Destination "builds/"
27+
28+
- name: "Upload Artifact"
29+
uses: actions/upload-artifact@v3
30+
with:
31+
name: release-builds
32+
path: builds/mvt-server-windows-x86_64.zip
33+
retention-days: 1

.github/workflows/release.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Build and Release
2+
3+
on:
4+
push:
5+
tags-ignore:
6+
- 'nightly*'
7+
8+
jobs:
9+
build-windows:
10+
runs-on: windows-latest
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v3
14+
15+
- name: Build Windows Release
16+
uses: ./.github/workflows/deployment/release/windows
17+
18+
build-macos:
19+
runs-on: macos-latest
20+
steps:
21+
- name: Checkout
22+
uses: actions/checkout@v3
23+
24+
- name: Build MacOs Release
25+
uses: ./.github/workflows/deployment/release/macos
26+
27+
build-linux:
28+
runs-on: ubuntu-latest
29+
steps:
30+
- name: Checkout
31+
uses: actions/checkout@v3
32+
33+
- name: Build Linux Release
34+
uses: ./.github/workflows/deployment/release/linux
35+
36+
# build-freebsd:
37+
# runs-on: macos-12
38+
# steps:
39+
# - name: Checkout
40+
# uses: actions/checkout@v3
41+
#
42+
# - name: Build FreeBSD Release
43+
# uses: ./.github/workflows/deployment/release/freebsd
44+
45+
46+
deploy:
47+
name: Deploy Release
48+
needs:
49+
- build-windows
50+
- build-macos
51+
- build-linux
52+
# - build-freebsd
53+
runs-on: ubuntu-24.04
54+
steps:
55+
- name: Download a single artifact
56+
uses: actions/download-artifact@v3
57+
with:
58+
name: release-builds
59+
path: builds
60+
- uses: ncipollo/release-action@v1
61+
with:
62+
artifacts: "builds/*.zip"

0 commit comments

Comments
 (0)