-
Notifications
You must be signed in to change notification settings - Fork 1
165 lines (150 loc) · 5.56 KB
/
release.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
name: Release
on:
workflow_dispatch:
push:
tags:
- 'v\d\.\d\.\d'
defaults:
run:
shell: bash
permissions:
contents: write
jobs:
release:
name: Build and Archive
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
# macOS, aarch64
- target: aarch64-apple-darwin
os: macos-latest
target_rustflags: ''
# Windoze, x86-64
- target: x86_64-pc-windows-msvc
os: windows-latest
target_rustflags: ''
# Linux, x86-64
- target: x86_64-unknown-linux-gnu
os: ubuntu-24.04
target_rustflags: ''
# Linux, aarch64
- target: aarch64-unknown-linux-gnu
os: ubuntu-24.04-arm
target_rustflags: ''
permissions:
id-token: write
contents: write
steps:
- uses: actions/checkout@v4
- name: Install Rust toolchains
uses: dtolnay/rust-toolchain@beta
with:
toolchain: beta
targets: ${{ matrix.target }}
- name: Install Nu Shell
uses: hustcer/setup-nu@v3
with:
version: '0.100'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build an rabbitmqadmin release archive on macOS
id: release-build-macos
if: ${{ matrix.os == 'macos-latest' }}
run: nu ./scripts/release-macos.nu
env:
OS: ${{ matrix.os }}
TARGET: ${{ matrix.target }}
TARGET_RUSTFLAGS: ${{ matrix.target_rustflags }}
SRC: ${{ github.workspace }}
- name: Store macOS build artifact
id: upload-macos-artifact
if: ${{ matrix.os == 'macos-latest' }}
uses: actions/upload-artifact@v4
with:
name: "rabbitmqadmin-${{ vars.NEXT_RELESE_VERSION }}-${{ matrix.target }}"
path: "${{ github.workspace }}/target/${{ matrix.target }}/release/rabbitmqadmin-${{ vars.NEXT_RELESE_VERSION }}-${{ matrix.target }}"
retention-days: 2
- name: Build an rabbitmqadmin release archive on x86-64 Linux
id: release-build-amd64-linux
if: ${{ matrix.os == 'ubuntu-24.04' }}
run: nu ./scripts/release-linux.nu
env:
OS: ${{ matrix.os }}
TARGET: ${{ matrix.target }}
TARGET_RUSTFLAGS: ${{ matrix.target_rustflags }}
SRC: ${{ github.workspace }}
- name: Store x86-64 Linux build artifact
id: upload-amd64-linux-artifact
if: ${{ matrix.os == 'ubuntu-24.04' }}
uses: actions/upload-artifact@v4
with:
name: "rabbitmqadmin-${{ vars.NEXT_RELESE_VERSION }}-${{ matrix.target }}"
path: "${{ github.workspace }}/target/${{ matrix.target }}/release/rabbitmqadmin-${{ vars.NEXT_RELESE_VERSION }}-${{ matrix.target }}"
retention-days: 2
- name: Build an rabbitmqadmin release archive on aarch64 Linux
id: release-build-aarch64-linux
if: ${{ matrix.os == 'ubuntu-24.04-arm' }}
run: nu ./scripts/release-linux.nu
env:
OS: ${{ matrix.os }}
TARGET: ${{ matrix.target }}
TARGET_RUSTFLAGS: ${{ matrix.target_rustflags }}
SRC: ${{ github.workspace }}
- name: Store aarch64 Linux build artifact
id: upload-aarch64-linux-artifact
if: ${{ matrix.os == 'ubuntu-24.04-arm' }}
uses: actions/upload-artifact@v4
with:
name: "rabbitmqadmin-${{ vars.NEXT_RELESE_VERSION }}-${{ matrix.target }}"
path: "${{ github.workspace }}/target/${{ matrix.target }}/release/rabbitmqadmin-${{ vars.NEXT_RELESE_VERSION }}-${{ matrix.target }}"
retention-days: 2
- name: Build an rabbitmqadmin release archive on Windows
id: release-build-windows
if: ${{ matrix.os == 'windows-latest' }}
run: nu ./scripts/release-windows.nu
env:
OS: ${{ matrix.os }}
TARGET: ${{ matrix.target }}
TARGET_RUSTFLAGS: ${{ matrix.target_rustflags }}
SRC: ${{ github.workspace }}
- name: Store Windows build artifact
id: upload-windows-artifact
if: ${{ matrix.os == 'windows-latest' }}
uses: actions/upload-artifact@v4
with:
name: "rabbitmqadmin-${{ vars.NEXT_RELESE_VERSION }}-${{ matrix.target }}.exe"
path: "${{ github.workspace }}/target/${{ matrix.target }}/release/rabbitmqadmin-${{ vars.NEXT_RELESE_VERSION }}-${{ matrix.target }}.exe"
retention-days: 2
create_gh_release:
needs: [release]
runs-on: ubuntu-24.04
steps:
- name: Fetch macOS archive
uses: actions/download-artifact@v4
with:
name: "rabbitmqadmin-${{ vars.NEXT_RELESE_VERSION }}-aarch64-apple-darwin"
path: ./artifacts
- name: Fetch amd64 Linux archive
uses: actions/download-artifact@v4
with:
name: "rabbitmqadmin-${{ vars.NEXT_RELESE_VERSION }}-x86_64-unknown-linux-gnu"
path: ./artifacts
- name: Fetch aarch64 Linux archive
uses: actions/download-artifact@v4
with:
name: "rabbitmqadmin-${{ vars.NEXT_RELESE_VERSION }}-aarch64-unknown-linux-gnu"
path: ./artifacts
- name: Fetch Windows archive
uses: actions/download-artifact@v4
with:
name: "rabbitmqadmin-${{ vars.NEXT_RELESE_VERSION }}-x86_64-pc-windows-msvc.exe"
path: ./artifacts
- name: Publish rabbitmqadmin release archive
uses: softprops/action-gh-release@v2
with:
tag_name: v${{ vars.NEXT_RELESE_VERSION }}
draft: false
files: ./artifacts/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}