-
-
Notifications
You must be signed in to change notification settings - Fork 41
125 lines (118 loc) · 3.49 KB
/
runtimes.yml
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
---
name: Build runtimes
on:
workflow_call:
workflow_dispatch:
env:
CARGO_HOME: ${{ github.workspace }}/.cargo-home
# We set an explicit version to only install the components we need for CI.
RUSTUP_TOOLCHAIN: '1.78'
jobs:
linux-amd64:
name: Linux AMD64
runs-on: ubuntu-latest
container:
image: ghcr.io/inko-lang/ci:debian-amd64
steps:
- uses: actions/checkout@v4
- name: Build runtimes
run: bash ci/runtimes.sh amd64-linux
- uses: actions/upload-artifact@v4
with:
name: amd64-linux
path: tmp/runtimes/*.tar.gz
overwrite: true
retention-days: 2
compression-level: 0
linux-arm64:
name: Linux ARM64
runs-on: ubuntu-latest
container:
image: ghcr.io/inko-lang/ci:debian-arm64
steps:
- uses: actions/checkout@v4
- name: Build runtimes
run: bash ci/runtimes.sh arm64-linux
- uses: actions/upload-artifact@v4
with:
name: arm64-linux
path: tmp/runtimes/*.tar.gz
overwrite: true
retention-days: 2
compression-level: 0
macos-amd64:
name: macOS AMD64
runs-on: macos-12
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: ./ci/mac.sh
- name: Build runtimes
run: bash ci/runtimes.sh amd64-mac
- uses: actions/upload-artifact@v4
with:
name: amd64-mac
path: tmp/runtimes/*.tar.gz
overwrite: true
retention-days: 2
compression-level: 0
macos-arm64:
name: macOS ARM64
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: ./ci/mac.sh
- name: Build runtimes
run: bash ci/runtimes.sh arm64-mac
- uses: actions/upload-artifact@v4
with:
name: arm64-mac
path: tmp/runtimes/*.tar.gz
overwrite: true
retention-days: 2
compression-level: 0
freebsd-amd64:
name: FreeBSD AMD64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build runtimes
uses: cross-platform-actions/action@v0.24.0
with:
operating_system: freebsd
version: '14.0'
memory: 8G
environment_variables: 'CARGO_HOME RUSTUP_HOME'
image_url: 'https://github.com/inko-lang/freebsd-builder/releases/download/v0.8.0/freebsd-14.0-x86-64.qcow2'
run: bash ci/runtimes.sh amd64-freebsd
- uses: actions/upload-artifact@v4
with:
name: amd64-freebsd
path: tmp/runtimes/*.tar.gz
overwrite: true
retention-days: 2
compression-level: 0
upload:
name: Upload runtimes
runs-on: ubuntu-latest
container:
image: ghcr.io/inko-lang/ci:fedora
env:
RCLONE_S3_ACCESS_KEY_ID: ${{ secrets.CLOUDFLARE_ACCESS_KEY_ID }}
RCLONE_S3_SECRET_ACCESS_KEY: ${{ secrets.CLOUDFLARE_SECRET_ACCESS_KEY }}
RCLONE_S3_ENDPOINT: https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com
needs:
- linux-amd64
- linux-arm64
- macos-amd64
- macos-arm64
- freebsd-amd64
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
path: tmp/runtimes
merge-multiple: true
- name: Upload runtimes
run: rclone sync --dry-run --config rclone.conf --checksum --verbose tmp/runtimes "production:inko-releases/runtimes/${{ github.ref_name }}"