Repository navigation
116 lines (99 loc) · 2.94 KB
/
Copy pathtest-installer.yml
File metadata and controls
116 lines (99 loc) · 2.94 KB
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
name: Test installer.sh
on:
workflow_dispatch:
inputs:
version:
description: 'CLI version to install for raw tests (leave empty for latest release)'
required: false
type: string
push:
branches:
- main
paths:
- installer.sh
- .github/workflows/test-installer.yml
pull_request:
paths:
- installer.sh
- .github/workflows/test-installer.yml
permissions:
contents: read
jobs:
# Default install flow: the installer auto-detects the package manager.
# CI is overridden to empty so that is_ci() returns false (otherwise
# the installer would always select the "raw" method on Linux).
linux:
runs-on: ubuntu-latest
container: ${{ matrix.image }}
defaults:
run:
shell: sh
strategy:
fail-fast: false
matrix:
include:
- image: debian:bookworm
prereqs: apt-get update && apt-get install -y curl ca-certificates
- image: ubuntu:24.04
prereqs: apt-get update && apt-get install -y curl ca-certificates
- image: fedora:41
prereqs: yum install -y curl
- image: alpine:3.21
prereqs: apk add --no-cache curl ca-certificates
steps:
- name: Install prerequisites
run: ${{ matrix.prereqs }}
- name: Check out repository
uses: actions/checkout@v7
- name: Run installer
env:
CI: ""
run: sh installer.sh
- name: Verify installation
run: upsun --version
# Raw install on Linux: setting VERSION triggers the raw method.
# Without a VERSION input the installer queries the GitHub API for the
# latest release.
linux-raw:
runs-on: ubuntu-latest
container: debian:bookworm
defaults:
run:
shell: sh
steps:
- name: Install prerequisites
run: apt-get update && apt-get install -y curl ca-certificates gzip
- name: Check out repository
uses: actions/checkout@v7
- name: Run installer
env:
VERSION: ${{ inputs.version }}
GITHUB_TOKEN: ${{ github.token }}
run: sh installer.sh
- name: Verify installation
run: upsun --version
# Default install flow on macOS (auto-detects homebrew).
macos:
runs-on: macos-latest
steps:
- name: Check out repository
uses: actions/checkout@v7
- name: Run installer
run: sh installer.sh
- name: Verify installation
run: upsun --version
# Raw install on macOS (INSTALL_METHOD is required because VERSION
# does not affect macOS method selection).
macos-raw:
runs-on: macos-latest
steps:
- name: Check out repository
uses: actions/checkout@v7
- name: Run installer
env:
INSTALL_METHOD: raw
VERSION: ${{ inputs.version }}
GITHUB_TOKEN: ${{ github.token }}
run: sh installer.sh
- name: Verify installation
run: upsun --version