summaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
blob: b4599086fb1cd9c4c85132adfcf17abf4165b967 (plain)
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
name: CI

on: [push, pull_request]

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]

    steps:
    - name: Install Linux packages
      if: runner.os == 'Linux'
      run: sudo env DEBIAN_FRONTEND=noninteractive apt-get -qq -y install pbzip2 zstd

    - name: Install macOS packages
      if: runner.os == 'macOS'
      run: brew install pbzip2 coreutils zstd

    - name: Checkout Makeself
      uses: actions/checkout@v2

    - name: Build release
      run: |
        git submodule update --init --recursive
        make

    - name: Upload build artifact
      if: runner.os == 'Linux'
      uses: actions/upload-artifact@v1
      with:
        name: Makeself-Build
        path: release
        
    - name: Run tests
      run: make test

  test-freebsd:
    needs: test
    runs-on: macos-latest
    name: Test Makeself on FreeBSD
    steps:
    - name: Checkout Makeself
      uses: actions/checkout@v2
    - name: Install git submodules
      run: git submodule update --init --recursive
    - name: Download Linux-built artifact
      uses: actions/download-artifact@v2
      with:
        name: Makeself-build
        path: artifact
    - name: Test on FreeBSD
      uses: vmactions/freebsd-vm@v0.1.2
      with:
        usesh: true
        prepare: pkg install -y pbzip2
        run: |
          pwd; freebsd-version
          make && make test
          sh ./artifact/makeself*.run --target /tmp/makeself

  lint:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout Makeself
      uses: actions/checkout@v2
    - name: Run ShellCheck
      uses: megastep/shell-linter@develop
      with:
        path: "makeself.sh"
        severity: "error"