summaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
blob: 85bd2923b2f73994685f784bbe74049a02c653aa (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
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
name: CI

on: [push, pull_request]

jobs:
  MacOS:
    runs-on: macos-latest
    strategy:
      matrix:
        bs: [autotools, cmake]
    steps:
    - uses: actions/checkout@master
    - name: Install dependencies
      run: ./build/ci/github_actions/macos.sh prepare
    - name: Autogen
      run: ./build/ci/build.sh -a autogen
      env:
        BS: ${{ matrix.bs }}
    - name: Configure
      run: ./build/ci/build.sh -a configure
      env:
        BS: ${{ matrix.bs }}
    - name: Build
      run: ./build/ci/build.sh -a build
      env:
        BS: ${{ matrix.bs }}
    - name: Test
      run: ./build/ci/build.sh -a test
      env:
        BS: ${{ matrix.bs }}
        SKIP_OPEN_FD_ERR_TEST: 1
    - name: Install
      run: ./build/ci/build.sh -a install
      env:
        BS: ${{ matrix.bs }}
    - name: Artifact
      run: ./build/ci/build.sh -a artifact
      env:
        BS: ${{ matrix.bs }}
    - uses: actions/upload-artifact@v1
      with:
        name: libarchive-macos-${{ matrix.bs }}-${{ github.sha }}
        path: libarchive.tar.xz

  Ubuntu:
    runs-on: ubuntu-20.04
    strategy:
      matrix:
        bs: [autotools, cmake]
        crypto: [mbedtls, nettle, openssl]
    steps:
    - uses: actions/checkout@master
    - name: Install dependencies
      run: sudo apt-get install -y build-essential cmake libssl-dev nettle-dev libmbedtls-dev libacl1-dev libbz2-dev liblzma-dev liblz4-dev libzstd-dev lzop
    - name: Autogen
      run: ./build/ci/build.sh -a autogen
      env:
        BS: ${{ matrix.bs }}
    - name: Configure
      run: ./build/ci/build.sh -a configure
      env:
        BS: ${{ matrix.bs }}
        CRYPTO: ${{ matrix.crypto }}
    - name: Build
      run: ./build/ci/build.sh -a build
      env:
        BS: ${{ matrix.bs }}
    - name: Test
      run: ./build/ci/build.sh -a test
      env:
        BS: ${{ matrix.bs }}
        SKIP_OPEN_FD_ERR_TEST: 1
    - name: Install
      run: ./build/ci/build.sh -a install
      env:
        BS: ${{ matrix.bs }}
    - name: Artifact
      run: ./build/ci/build.sh -a artifact
      env:
        BS: ${{ matrix.bs }}
    - uses: actions/upload-artifact@v1
      with:
        name: libarchive-ubuntu-${{ matrix.bs }}-${{ matrix.crypto }}-${{ github.sha }}
        path: libarchive.tar.xz
  Ubuntu-distcheck:
    runs-on: ubuntu-20.04
    steps:
    - uses: actions/checkout@master
    - name: Install dependencies
      run: sudo apt-get install -y build-essential cmake libssl-dev libacl1-dev libbz2-dev liblzma-dev liblz4-dev libzstd-dev lzop groff ghostscript
    - name: Autogen
      run: ./build/ci/build.sh -a autogen
    - name: Configure
      run: ./build/ci/build.sh -a configure
    - name: Distcheck
      run: ./build/ci/build.sh -a distcheck
      env:
        SKIP_OPEN_FD_ERR_TEST: 1

  Windows:
    runs-on: windows-latest
    strategy:
      matrix:
        be: [mingw-gcc, msvc]
    steps:
    - uses: actions/checkout@master
    - name: Install dependencies
      run: ./build/ci/github_actions/ci.cmd deplibs
      shell: cmd
      env:
        BE: ${{ matrix.be }}
    - name: Configure
      run: ./build/ci/github_actions/ci.cmd configure
      shell: cmd
      env:
        BE: ${{ matrix.be }}
    - name: Build
      run: ./build/ci/github_actions/ci.cmd build
      shell: cmd
      env:
        BE: ${{ matrix.be }}
    - name: Test
      run: ./build/ci/github_actions/ci.cmd test
      shell: cmd
      env:
        BE: ${{ matrix.be }}
    - name: Install
      run: ./build/ci/github_actions/ci.cmd install
      shell: cmd
      env:
        BE: ${{ matrix.be }}
    - name: Artifact
      run: ./build/ci/github_actions/ci.cmd artifact
      shell: cmd
      env:
        BE: ${{ matrix.be }}
    - uses: actions/upload-artifact@v1
      with:
        name: libarchive-windows-${{ matrix.be }}-${{ github.sha }}
        path: libarchive.zip