diff mbox series

[ovs-dev,v3] CI: Add github actions workflow.

Message ID 20201127072920.433129-1-numans@ovn.org
State Accepted
Headers show
Series [ovs-dev,v3] CI: Add github actions workflow. | expand

Commit Message

Numan Siddique Nov. 27, 2020, 7:29 a.m. UTC
From: Numan Siddique <numans@ovn.org>

This patch adds basic github actions to build and run OVN tests.
The test matrix is a slightly reduced version of current travis matrix.
We don't need to run OVN with multiple kernel versions.

This patch also removes the .travis.yml file as there is little value
in running the same tests in travis CI, given that travis-ci.org will
be turned into read-only mode. More information on this can be found
here [1].

We can further enhance the github actions to run ovn-kubernetes
end-to-end tests.

Thanks to Ilya, much of the github actions code is taken from Ilya's OVS
github action patch [2].

[1] - https://github.com/numansiddique/ovn/runs/1457594086
[2] - https://patchwork.ozlabs.org/project/openvswitch/patch/20201125145753.534447-3-i.maximets@ovn.org/
Co-authored-by: Ilya Maximets <i.maximets@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Signed-off-by: Numan Siddique <numans@ovn.org>
---

Here is how it looks like:
  https://github.com/numansiddique/ovn/runs/1462480259

Antonio Ojea <aojea@redhat.com> has submitted a PR - https://github.com/ovn-org/ovn/pull/61
to run ovn-k8s end-to-end tests using github actions a while back. That PR
needs some polishing. I will be submitting that for review once it is
ready.


v2 -> v3
---
 * Addressed review comments from Ilya
     - for the m32 build
     - added the tasks to collect logs.

v1 -> v2
----
  * Addressed review comments from Ilya.

 {.travis => .ci}/linux-build.sh   |  18 ++---
 {.travis => .ci}/linux-prepare.sh |   0
 {.travis => .ci}/osx-build.sh     |   0
 {.travis => .ci}/osx-prepare.sh   |   0
 .github/workflows/test.yml        | 113 ++++++++++++++++++++++++++++++
 .travis.yml                       |  47 -------------
 Makefile.am                       |  10 +--
 7 files changed, 128 insertions(+), 60 deletions(-)
 rename {.travis => .ci}/linux-build.sh (74%)
 rename {.travis => .ci}/linux-prepare.sh (100%)
 rename {.travis => .ci}/osx-build.sh (100%)
 rename {.travis => .ci}/osx-prepare.sh (100%)
 create mode 100644 .github/workflows/test.yml
 delete mode 100644 .travis.yml

Comments

Mark Michelson Dec. 2, 2020, 12:56 a.m. UTC | #1
Acked-by: Mark Michelson <mmichels@redhat.com>

There are definitely some enhancements/changes this could use, but I 
think this makes for a perfectly fine first effort. With this, github 
will build and run tests, failures are detected properly, and you can 
find the details of the failures by navigating to the github actions.

I think the biggest immediate change that should be made as a second 
step is to upload the `make distcheck` output as an artifact. But 
there's no reason that it needs to be made immediately as part of this 
change.

On 11/27/20 2:29 AM, numans@ovn.org wrote:
> From: Numan Siddique <numans@ovn.org>
> 
> This patch adds basic github actions to build and run OVN tests.
> The test matrix is a slightly reduced version of current travis matrix.
> We don't need to run OVN with multiple kernel versions.
> 
> This patch also removes the .travis.yml file as there is little value
> in running the same tests in travis CI, given that travis-ci.org will
> be turned into read-only mode. More information on this can be found
> here [1].
> 
> We can further enhance the github actions to run ovn-kubernetes
> end-to-end tests.
> 
> Thanks to Ilya, much of the github actions code is taken from Ilya's OVS
> github action patch [2].
> 
> [1] - https://github.com/numansiddique/ovn/runs/1457594086
> [2] - https://patchwork.ozlabs.org/project/openvswitch/patch/20201125145753.534447-3-i.maximets@ovn.org/
> Co-authored-by: Ilya Maximets <i.maximets@ovn.org>
> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
> Signed-off-by: Numan Siddique <numans@ovn.org>
> ---
> 
> Here is how it looks like:
>    https://github.com/numansiddique/ovn/runs/1462480259
> 
> Antonio Ojea <aojea@redhat.com> has submitted a PR - https://github.com/ovn-org/ovn/pull/61
> to run ovn-k8s end-to-end tests using github actions a while back. That PR
> needs some polishing. I will be submitting that for review once it is
> ready.
> 
> 
> v2 -> v3
> ---
>   * Addressed review comments from Ilya
>       - for the m32 build
>       - added the tasks to collect logs.
> 
> v1 -> v2
> ----
>    * Addressed review comments from Ilya.
> 
>   {.travis => .ci}/linux-build.sh   |  18 ++---
>   {.travis => .ci}/linux-prepare.sh |   0
>   {.travis => .ci}/osx-build.sh     |   0
>   {.travis => .ci}/osx-prepare.sh   |   0
>   .github/workflows/test.yml        | 113 ++++++++++++++++++++++++++++++
>   .travis.yml                       |  47 -------------
>   Makefile.am                       |  10 +--
>   7 files changed, 128 insertions(+), 60 deletions(-)
>   rename {.travis => .ci}/linux-build.sh (74%)
>   rename {.travis => .ci}/linux-prepare.sh (100%)
>   rename {.travis => .ci}/osx-build.sh (100%)
>   rename {.travis => .ci}/osx-prepare.sh (100%)
>   create mode 100644 .github/workflows/test.yml
>   delete mode 100644 .travis.yml
> 
> diff --git a/.travis/linux-build.sh b/.ci/linux-build.sh
> similarity index 74%
> rename from .travis/linux-build.sh
> rename to .ci/linux-build.sh
> index a8a561dc4e..0e9f87fa8b 100755
> --- a/.travis/linux-build.sh
> +++ b/.ci/linux-build.sh
> @@ -3,10 +3,9 @@
>   set -o errexit
>   set -x
>   
> -CFLAGS="-Werror"
> +CFLAGS=""
>   SPARSE_FLAGS=""
> -EXTRA_OPTS=""
> -TARGET="x86_64-native-linuxapp-gcc"
> +EXTRA_OPTS="--enable-Werror"
>   
>   function configure_ovs()
>   {
> @@ -24,16 +23,19 @@ function configure_ovn()
>       { cat config.log; exit 1; }
>   }
>   
> -OPTS="$EXTRA_OPTS $*"
> +save_OPTS="${OPTS} $*"
> +OPTS="${EXTRA_OPTS} ${save_OPTS}"
>   
>   if [ "$CC" = "clang" ]; then
>       export OVS_CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument"
> -elif [[ $BUILD_ENV =~ "-m32" ]]; then
> -    # Disable sparse for 32bit builds on 64bit machine
> -    export OVS_CFLAGS="$CFLAGS $BUILD_ENV"
> +elif [ "$M32" ]; then
> +    # Not using sparse for 32bit builds on 64bit machine.
> +    # Adding m32 flag directly to CC to avoid any posiible issues with API/ABI
> +    # difference on 'configure' and 'make' stages.
> +    export CC="$CC -m32"
>   else
>       OPTS="$OPTS --enable-sparse"
> -    export OVS_CFLAGS="$CFLAGS $BUILD_ENV $SPARSE_FLAGS"
> +    export OVS_CFLAGS="$CFLAGS $SPARSE_FLAGS"
>   fi
>   
>   if [ "$TESTSUITE" ]; then
> diff --git a/.travis/linux-prepare.sh b/.ci/linux-prepare.sh
> similarity index 100%
> rename from .travis/linux-prepare.sh
> rename to .ci/linux-prepare.sh
> diff --git a/.travis/osx-build.sh b/.ci/osx-build.sh
> similarity index 100%
> rename from .travis/osx-build.sh
> rename to .ci/osx-build.sh
> diff --git a/.travis/osx-prepare.sh b/.ci/osx-prepare.sh
> similarity index 100%
> rename from .travis/osx-prepare.sh
> rename to .ci/osx-prepare.sh
> diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
> new file mode 100644
> index 0000000000..7be75ca36c
> --- /dev/null
> +++ b/.github/workflows/test.yml
> @@ -0,0 +1,113 @@
> +name: Build and Test
> +
> +on: [push, pull_request]
> +
> +jobs:
> +  build-linux:
> +    env:
> +      dependencies: |
> +        automake libtool gcc bc libjemalloc1 libjemalloc-dev    \
> +        libssl-dev llvm-dev libelf-dev libnuma-dev libpcap-dev  \
> +        python3-openssl python3-pip python3-sphinx              \
> +        selinux-policy-dev
> +      m32_dependecies: gcc-multilib
> +      CC:          ${{ matrix.compiler }}
> +      LIBS:        ${{ matrix.libs }}
> +      M32:         ${{ matrix.m32 }}
> +      OPTS:        ${{ matrix.opts }}
> +      TESTSUITE:   ${{ matrix.testsuite }}
> +
> +    name: linux ${{ join(matrix.*, ' ') }}
> +    runs-on: ubuntu-18.04
> +
> +    strategy:
> +      fail-fast: false
> +      matrix:
> +        include:
> +          - compiler:     gcc
> +            opts:         --disable-ssl
> +          - compiler:     clang
> +            opts:         --disable-ssl
> +
> +          - compiler:     gcc
> +            testsuite:    test
> +          - compiler:     clang
> +            testsuite:    test
> +
> +          - compiler:     gcc
> +            testsuite:    test
> +            libs:         -ljemalloc
> +          - compiler:     clang
> +            testsuite:    test
> +            libs:         -ljemalloc
> +
> +          - compiler:     gcc
> +            m32:          m32
> +            opts:         --disable-ssl
> +
> +    steps:
> +    - name: checkout
> +      uses: actions/checkout@v2
> +
> +    - name: install required dependencies
> +      run:  sudo apt install -y ${{ env.dependencies }}
> +
> +    - name: install libunbound libunwind
> +      if:   matrix.m32 == ''
> +      run:  sudo apt install -y libunbound-dev libunwind-dev
> +
> +    - name: install 32-bit dependencies
> +      if:   matrix.m32 != ''
> +      run:  sudo apt install -y ${{ env.m32_dependecies }}
> +
> +    - name: prepare
> +      run:  ./.ci/linux-prepare.sh
> +
> +    - name: build
> +      run:  PATH="$PATH:$HOME/bin" ./.ci/linux-build.sh
> +
> +    - name: copy logs on failure
> +      if: failure() || cancelled()
> +      run: |
> +        # upload-artifact@v2 throws exceptions if it tries to upload socket
> +        # files and we could have some socket files in testsuite.dir.
> +        # Also, upload-artifact@v2 doesn't work well enough with wildcards.
> +        # So, we're just archiving everything here to avoid any issues.
> +        mkdir logs
> +        cp config.log ./logs/
> +        cp -r ./*/_build/sub/tests/testsuite.* ./logs/ || true
> +        tar -czvf logs.tgz logs/
> +
> +    - name: upload logs on failure
> +      if: failure() || cancelled()
> +      uses: actions/upload-artifact@v2
> +      with:
> +        name: logs-linux-${{ join(matrix.*, '-') }}
> +        path: logs.tgz
> +
> +  build-osx:
> +    env:
> +      CC:    clang
> +      OPTS:  --disable-ssl
> +
> +    name:    osx clang --disable-ssl
> +    runs-on: macos-latest
> +
> +    strategy:
> +      fail-fast: false
> +
> +    steps:
> +    - name: checkout
> +      uses: actions/checkout@v2
> +    - name: install dependencies
> +      run:  brew install automake libtool
> +    - name: prepare
> +      run:  ./.ci/osx-prepare.sh
> +    - name: build
> +      run:  PATH="$PATH:$HOME/bin" ./.ci/osx-build.sh
> +    - name: upload logs on failure
> +      if: failure()
> +      uses: actions/upload-artifact@v2
> +      with:
> +        name: logs-osx-clang---disable-ssl
> +        path: config.log
> diff --git a/.travis.yml b/.travis.yml
> deleted file mode 100644
> index cd853fddd9..0000000000
> --- a/.travis.yml
> +++ /dev/null
> @@ -1,47 +0,0 @@
> -language: c
> -compiler:
> -  - gcc
> -  - clang
> -
> -os:
> -  - linux
> -
> -addons:
> -  apt:
> -    packages:
> -      - bc
> -      - gcc-multilib
> -      - libssl-dev
> -      - llvm-dev
> -      - libjemalloc1
> -      - libjemalloc-dev
> -      - libnuma-dev
> -      - python-sphinx
> -      - libelf-dev
> -      - selinux-policy-dev
> -      - libunbound-dev
> -      - libunbound-dev:i386
> -
> -before_install: ./.travis/${TRAVIS_OS_NAME}-prepare.sh
> -
> -before_script: export PATH=$PATH:$HOME/bin
> -
> -env:
> -  - OPTS="--disable-ssl"
> -  - TESTSUITE=1 KERNEL=4.18.20
> -  - TESTSUITE=1 OPTS="--enable-shared"
> -  - BUILD_ENV="-m32" OPTS="--disable-ssl"
> -  - TESTSUITE=1 LIBS=-ljemalloc
> -
> -matrix:
> -  include:
> -    - os: osx
> -      compiler: clang
> -      env: OPTS="--disable-ssl"
> -
> -script: ./.travis/${TRAVIS_OS_NAME}-build.sh $OPTS
> -
> -notifications:
> -  email:
> -    recipients:
> -      - ovs-build@openvswitch.org
> diff --git a/Makefile.am b/Makefile.am
> index 221ca61be7..7ce3d27e46 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -84,11 +84,11 @@ EXTRA_DIST = \
>   	README.rst \
>   	NOTICE \
>   	.cirrus.yml \
> -	.travis.yml \
> -	.travis/linux-build.sh \
> -	.travis/linux-prepare.sh \
> -	.travis/osx-build.sh \
> -	.travis/osx-prepare.sh \
> +	.ci/linux-build.sh \
> +	.ci/linux-prepare.sh \
> +	.ci/osx-build.sh \
> +	.ci/osx-prepare.sh \
> +	.github/workflows/test.yml \
>   	boot.sh \
>   	$(MAN_FRAGMENTS) \
>   	$(MAN_ROOTS) \
>
Numan Siddique Dec. 2, 2020, 7:14 a.m. UTC | #2
On Wed, Dec 2, 2020 at 6:26 AM Mark Michelson <mmichels@redhat.com> wrote:
>
> Acked-by: Mark Michelson <mmichels@redhat.com>
>
> There are definitely some enhancements/changes this could use, but I
> think this makes for a perfectly fine first effort. With this, github
> will build and run tests, failures are detected properly, and you can
> find the details of the failures by navigating to the github actions.
>
> I think the biggest immediate change that should be made as a second
> step is to upload the `make distcheck` output as an artifact. But
> there's no reason that it needs to be made immediately as part of this
> change.
>

Thanks for the review. I applied this patch to master and to all the
branches - 20.09, 20.06 and 20.03.

Agree. If you're aware of about the artifacts, please consider
submitting the patch to address it.

I will work on having this PR - https://github.com/ovn-org/ovn/pull/61
to work successfully.

Thanks
Numan


> On 11/27/20 2:29 AM, numans@ovn.org wrote:
> > From: Numan Siddique <numans@ovn.org>
> >
> > This patch adds basic github actions to build and run OVN tests.
> > The test matrix is a slightly reduced version of current travis matrix.
> > We don't need to run OVN with multiple kernel versions.
> >
> > This patch also removes the .travis.yml file as there is little value
> > in running the same tests in travis CI, given that travis-ci.org will
> > be turned into read-only mode. More information on this can be found
> > here [1].
> >
> > We can further enhance the github actions to run ovn-kubernetes
> > end-to-end tests.
> >
> > Thanks to Ilya, much of the github actions code is taken from Ilya's OVS
> > github action patch [2].
> >
> > [1] - https://github.com/numansiddique/ovn/runs/1457594086
> > [2] - https://patchwork.ozlabs.org/project/openvswitch/patch/20201125145753.534447-3-i.maximets@ovn.org/
> > Co-authored-by: Ilya Maximets <i.maximets@ovn.org>
> > Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
> > Signed-off-by: Numan Siddique <numans@ovn.org>
> > ---
> >
> > Here is how it looks like:
> >    https://github.com/numansiddique/ovn/runs/1462480259
> >
> > Antonio Ojea <aojea@redhat.com> has submitted a PR - https://github.com/ovn-org/ovn/pull/61
> > to run ovn-k8s end-to-end tests using github actions a while back. That PR
> > needs some polishing. I will be submitting that for review once it is
> > ready.
> >
> >
> > v2 -> v3
> > ---
> >   * Addressed review comments from Ilya
> >       - for the m32 build
> >       - added the tasks to collect logs.
> >
> > v1 -> v2
> > ----
> >    * Addressed review comments from Ilya.
> >
> >   {.travis => .ci}/linux-build.sh   |  18 ++---
> >   {.travis => .ci}/linux-prepare.sh |   0
> >   {.travis => .ci}/osx-build.sh     |   0
> >   {.travis => .ci}/osx-prepare.sh   |   0
> >   .github/workflows/test.yml        | 113 ++++++++++++++++++++++++++++++
> >   .travis.yml                       |  47 -------------
> >   Makefile.am                       |  10 +--
> >   7 files changed, 128 insertions(+), 60 deletions(-)
> >   rename {.travis => .ci}/linux-build.sh (74%)
> >   rename {.travis => .ci}/linux-prepare.sh (100%)
> >   rename {.travis => .ci}/osx-build.sh (100%)
> >   rename {.travis => .ci}/osx-prepare.sh (100%)
> >   create mode 100644 .github/workflows/test.yml
> >   delete mode 100644 .travis.yml
> >
> > diff --git a/.travis/linux-build.sh b/.ci/linux-build.sh
> > similarity index 74%
> > rename from .travis/linux-build.sh
> > rename to .ci/linux-build.sh
> > index a8a561dc4e..0e9f87fa8b 100755
> > --- a/.travis/linux-build.sh
> > +++ b/.ci/linux-build.sh
> > @@ -3,10 +3,9 @@
> >   set -o errexit
> >   set -x
> >
> > -CFLAGS="-Werror"
> > +CFLAGS=""
> >   SPARSE_FLAGS=""
> > -EXTRA_OPTS=""
> > -TARGET="x86_64-native-linuxapp-gcc"
> > +EXTRA_OPTS="--enable-Werror"
> >
> >   function configure_ovs()
> >   {
> > @@ -24,16 +23,19 @@ function configure_ovn()
> >       { cat config.log; exit 1; }
> >   }
> >
> > -OPTS="$EXTRA_OPTS $*"
> > +save_OPTS="${OPTS} $*"
> > +OPTS="${EXTRA_OPTS} ${save_OPTS}"
> >
> >   if [ "$CC" = "clang" ]; then
> >       export OVS_CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument"
> > -elif [[ $BUILD_ENV =~ "-m32" ]]; then
> > -    # Disable sparse for 32bit builds on 64bit machine
> > -    export OVS_CFLAGS="$CFLAGS $BUILD_ENV"
> > +elif [ "$M32" ]; then
> > +    # Not using sparse for 32bit builds on 64bit machine.
> > +    # Adding m32 flag directly to CC to avoid any posiible issues with API/ABI
> > +    # difference on 'configure' and 'make' stages.
> > +    export CC="$CC -m32"
> >   else
> >       OPTS="$OPTS --enable-sparse"
> > -    export OVS_CFLAGS="$CFLAGS $BUILD_ENV $SPARSE_FLAGS"
> > +    export OVS_CFLAGS="$CFLAGS $SPARSE_FLAGS"
> >   fi
> >
> >   if [ "$TESTSUITE" ]; then
> > diff --git a/.travis/linux-prepare.sh b/.ci/linux-prepare.sh
> > similarity index 100%
> > rename from .travis/linux-prepare.sh
> > rename to .ci/linux-prepare.sh
> > diff --git a/.travis/osx-build.sh b/.ci/osx-build.sh
> > similarity index 100%
> > rename from .travis/osx-build.sh
> > rename to .ci/osx-build.sh
> > diff --git a/.travis/osx-prepare.sh b/.ci/osx-prepare.sh
> > similarity index 100%
> > rename from .travis/osx-prepare.sh
> > rename to .ci/osx-prepare.sh
> > diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
> > new file mode 100644
> > index 0000000000..7be75ca36c
> > --- /dev/null
> > +++ b/.github/workflows/test.yml
> > @@ -0,0 +1,113 @@
> > +name: Build and Test
> > +
> > +on: [push, pull_request]
> > +
> > +jobs:
> > +  build-linux:
> > +    env:
> > +      dependencies: |
> > +        automake libtool gcc bc libjemalloc1 libjemalloc-dev    \
> > +        libssl-dev llvm-dev libelf-dev libnuma-dev libpcap-dev  \
> > +        python3-openssl python3-pip python3-sphinx              \
> > +        selinux-policy-dev
> > +      m32_dependecies: gcc-multilib
> > +      CC:          ${{ matrix.compiler }}
> > +      LIBS:        ${{ matrix.libs }}
> > +      M32:         ${{ matrix.m32 }}
> > +      OPTS:        ${{ matrix.opts }}
> > +      TESTSUITE:   ${{ matrix.testsuite }}
> > +
> > +    name: linux ${{ join(matrix.*, ' ') }}
> > +    runs-on: ubuntu-18.04
> > +
> > +    strategy:
> > +      fail-fast: false
> > +      matrix:
> > +        include:
> > +          - compiler:     gcc
> > +            opts:         --disable-ssl
> > +          - compiler:     clang
> > +            opts:         --disable-ssl
> > +
> > +          - compiler:     gcc
> > +            testsuite:    test
> > +          - compiler:     clang
> > +            testsuite:    test
> > +
> > +          - compiler:     gcc
> > +            testsuite:    test
> > +            libs:         -ljemalloc
> > +          - compiler:     clang
> > +            testsuite:    test
> > +            libs:         -ljemalloc
> > +
> > +          - compiler:     gcc
> > +            m32:          m32
> > +            opts:         --disable-ssl
> > +
> > +    steps:
> > +    - name: checkout
> > +      uses: actions/checkout@v2
> > +
> > +    - name: install required dependencies
> > +      run:  sudo apt install -y ${{ env.dependencies }}
> > +
> > +    - name: install libunbound libunwind
> > +      if:   matrix.m32 == ''
> > +      run:  sudo apt install -y libunbound-dev libunwind-dev
> > +
> > +    - name: install 32-bit dependencies
> > +      if:   matrix.m32 != ''
> > +      run:  sudo apt install -y ${{ env.m32_dependecies }}
> > +
> > +    - name: prepare
> > +      run:  ./.ci/linux-prepare.sh
> > +
> > +    - name: build
> > +      run:  PATH="$PATH:$HOME/bin" ./.ci/linux-build.sh
> > +
> > +    - name: copy logs on failure
> > +      if: failure() || cancelled()
> > +      run: |
> > +        # upload-artifact@v2 throws exceptions if it tries to upload socket
> > +        # files and we could have some socket files in testsuite.dir.
> > +        # Also, upload-artifact@v2 doesn't work well enough with wildcards.
> > +        # So, we're just archiving everything here to avoid any issues.
> > +        mkdir logs
> > +        cp config.log ./logs/
> > +        cp -r ./*/_build/sub/tests/testsuite.* ./logs/ || true
> > +        tar -czvf logs.tgz logs/
> > +
> > +    - name: upload logs on failure
> > +      if: failure() || cancelled()
> > +      uses: actions/upload-artifact@v2
> > +      with:
> > +        name: logs-linux-${{ join(matrix.*, '-') }}
> > +        path: logs.tgz
> > +
> > +  build-osx:
> > +    env:
> > +      CC:    clang
> > +      OPTS:  --disable-ssl
> > +
> > +    name:    osx clang --disable-ssl
> > +    runs-on: macos-latest
> > +
> > +    strategy:
> > +      fail-fast: false
> > +
> > +    steps:
> > +    - name: checkout
> > +      uses: actions/checkout@v2
> > +    - name: install dependencies
> > +      run:  brew install automake libtool
> > +    - name: prepare
> > +      run:  ./.ci/osx-prepare.sh
> > +    - name: build
> > +      run:  PATH="$PATH:$HOME/bin" ./.ci/osx-build.sh
> > +    - name: upload logs on failure
> > +      if: failure()
> > +      uses: actions/upload-artifact@v2
> > +      with:
> > +        name: logs-osx-clang---disable-ssl
> > +        path: config.log
> > diff --git a/.travis.yml b/.travis.yml
> > deleted file mode 100644
> > index cd853fddd9..0000000000
> > --- a/.travis.yml
> > +++ /dev/null
> > @@ -1,47 +0,0 @@
> > -language: c
> > -compiler:
> > -  - gcc
> > -  - clang
> > -
> > -os:
> > -  - linux
> > -
> > -addons:
> > -  apt:
> > -    packages:
> > -      - bc
> > -      - gcc-multilib
> > -      - libssl-dev
> > -      - llvm-dev
> > -      - libjemalloc1
> > -      - libjemalloc-dev
> > -      - libnuma-dev
> > -      - python-sphinx
> > -      - libelf-dev
> > -      - selinux-policy-dev
> > -      - libunbound-dev
> > -      - libunbound-dev:i386
> > -
> > -before_install: ./.travis/${TRAVIS_OS_NAME}-prepare.sh
> > -
> > -before_script: export PATH=$PATH:$HOME/bin
> > -
> > -env:
> > -  - OPTS="--disable-ssl"
> > -  - TESTSUITE=1 KERNEL=4.18.20
> > -  - TESTSUITE=1 OPTS="--enable-shared"
> > -  - BUILD_ENV="-m32" OPTS="--disable-ssl"
> > -  - TESTSUITE=1 LIBS=-ljemalloc
> > -
> > -matrix:
> > -  include:
> > -    - os: osx
> > -      compiler: clang
> > -      env: OPTS="--disable-ssl"
> > -
> > -script: ./.travis/${TRAVIS_OS_NAME}-build.sh $OPTS
> > -
> > -notifications:
> > -  email:
> > -    recipients:
> > -      - ovs-build@openvswitch.org
> > diff --git a/Makefile.am b/Makefile.am
> > index 221ca61be7..7ce3d27e46 100644
> > --- a/Makefile.am
> > +++ b/Makefile.am
> > @@ -84,11 +84,11 @@ EXTRA_DIST = \
> >       README.rst \
> >       NOTICE \
> >       .cirrus.yml \
> > -     .travis.yml \
> > -     .travis/linux-build.sh \
> > -     .travis/linux-prepare.sh \
> > -     .travis/osx-build.sh \
> > -     .travis/osx-prepare.sh \
> > +     .ci/linux-build.sh \
> > +     .ci/linux-prepare.sh \
> > +     .ci/osx-build.sh \
> > +     .ci/osx-prepare.sh \
> > +     .github/workflows/test.yml \
> >       boot.sh \
> >       $(MAN_FRAGMENTS) \
> >       $(MAN_ROOTS) \
> >
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
Numan Siddique Dec. 2, 2020, 7:16 a.m. UTC | #3
On Wed, Dec 2, 2020 at 12:44 PM Numan Siddique <numans@ovn.org> wrote:
>
> On Wed, Dec 2, 2020 at 6:26 AM Mark Michelson <mmichels@redhat.com> wrote:
> >
> > Acked-by: Mark Michelson <mmichels@redhat.com>
> >
> > There are definitely some enhancements/changes this could use, but I
> > think this makes for a perfectly fine first effort. With this, github
> > will build and run tests, failures are detected properly, and you can
> > find the details of the failures by navigating to the github actions.
> >
> > I think the biggest immediate change that should be made as a second
> > step is to upload the `make distcheck` output as an artifact. But
> > there's no reason that it needs to be made immediately as part of this
> > change.
> >
>
> Thanks for the review. I applied this patch to master and to all the
> branches - 20.09, 20.06 and 20.03.

Forgot to mention that while backporting I modified the linux-build.sh to
checkout OVS v2.14.0 tag as OVN branches don't compile successfully with
the present master due to some changes in the ofpact structs.

Thanks
Numan

>
> Agree. If you're aware of about the artifacts, please consider
> submitting the patch to address it.
>
> I will work on having this PR - https://github.com/ovn-org/ovn/pull/61
> to work successfully.
>
> Thanks
> Numan
>
>
> > On 11/27/20 2:29 AM, numans@ovn.org wrote:
> > > From: Numan Siddique <numans@ovn.org>
> > >
> > > This patch adds basic github actions to build and run OVN tests.
> > > The test matrix is a slightly reduced version of current travis matrix.
> > > We don't need to run OVN with multiple kernel versions.
> > >
> > > This patch also removes the .travis.yml file as there is little value
> > > in running the same tests in travis CI, given that travis-ci.org will
> > > be turned into read-only mode. More information on this can be found
> > > here [1].
> > >
> > > We can further enhance the github actions to run ovn-kubernetes
> > > end-to-end tests.
> > >
> > > Thanks to Ilya, much of the github actions code is taken from Ilya's OVS
> > > github action patch [2].
> > >
> > > [1] - https://github.com/numansiddique/ovn/runs/1457594086
> > > [2] - https://patchwork.ozlabs.org/project/openvswitch/patch/20201125145753.534447-3-i.maximets@ovn.org/
> > > Co-authored-by: Ilya Maximets <i.maximets@ovn.org>
> > > Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
> > > Signed-off-by: Numan Siddique <numans@ovn.org>
> > > ---
> > >
> > > Here is how it looks like:
> > >    https://github.com/numansiddique/ovn/runs/1462480259
> > >
> > > Antonio Ojea <aojea@redhat.com> has submitted a PR - https://github.com/ovn-org/ovn/pull/61
> > > to run ovn-k8s end-to-end tests using github actions a while back. That PR
> > > needs some polishing. I will be submitting that for review once it is
> > > ready.
> > >
> > >
> > > v2 -> v3
> > > ---
> > >   * Addressed review comments from Ilya
> > >       - for the m32 build
> > >       - added the tasks to collect logs.
> > >
> > > v1 -> v2
> > > ----
> > >    * Addressed review comments from Ilya.
> > >
> > >   {.travis => .ci}/linux-build.sh   |  18 ++---
> > >   {.travis => .ci}/linux-prepare.sh |   0
> > >   {.travis => .ci}/osx-build.sh     |   0
> > >   {.travis => .ci}/osx-prepare.sh   |   0
> > >   .github/workflows/test.yml        | 113 ++++++++++++++++++++++++++++++
> > >   .travis.yml                       |  47 -------------
> > >   Makefile.am                       |  10 +--
> > >   7 files changed, 128 insertions(+), 60 deletions(-)
> > >   rename {.travis => .ci}/linux-build.sh (74%)
> > >   rename {.travis => .ci}/linux-prepare.sh (100%)
> > >   rename {.travis => .ci}/osx-build.sh (100%)
> > >   rename {.travis => .ci}/osx-prepare.sh (100%)
> > >   create mode 100644 .github/workflows/test.yml
> > >   delete mode 100644 .travis.yml
> > >
> > > diff --git a/.travis/linux-build.sh b/.ci/linux-build.sh
> > > similarity index 74%
> > > rename from .travis/linux-build.sh
> > > rename to .ci/linux-build.sh
> > > index a8a561dc4e..0e9f87fa8b 100755
> > > --- a/.travis/linux-build.sh
> > > +++ b/.ci/linux-build.sh
> > > @@ -3,10 +3,9 @@
> > >   set -o errexit
> > >   set -x
> > >
> > > -CFLAGS="-Werror"
> > > +CFLAGS=""
> > >   SPARSE_FLAGS=""
> > > -EXTRA_OPTS=""
> > > -TARGET="x86_64-native-linuxapp-gcc"
> > > +EXTRA_OPTS="--enable-Werror"
> > >
> > >   function configure_ovs()
> > >   {
> > > @@ -24,16 +23,19 @@ function configure_ovn()
> > >       { cat config.log; exit 1; }
> > >   }
> > >
> > > -OPTS="$EXTRA_OPTS $*"
> > > +save_OPTS="${OPTS} $*"
> > > +OPTS="${EXTRA_OPTS} ${save_OPTS}"
> > >
> > >   if [ "$CC" = "clang" ]; then
> > >       export OVS_CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument"
> > > -elif [[ $BUILD_ENV =~ "-m32" ]]; then
> > > -    # Disable sparse for 32bit builds on 64bit machine
> > > -    export OVS_CFLAGS="$CFLAGS $BUILD_ENV"
> > > +elif [ "$M32" ]; then
> > > +    # Not using sparse for 32bit builds on 64bit machine.
> > > +    # Adding m32 flag directly to CC to avoid any posiible issues with API/ABI
> > > +    # difference on 'configure' and 'make' stages.
> > > +    export CC="$CC -m32"
> > >   else
> > >       OPTS="$OPTS --enable-sparse"
> > > -    export OVS_CFLAGS="$CFLAGS $BUILD_ENV $SPARSE_FLAGS"
> > > +    export OVS_CFLAGS="$CFLAGS $SPARSE_FLAGS"
> > >   fi
> > >
> > >   if [ "$TESTSUITE" ]; then
> > > diff --git a/.travis/linux-prepare.sh b/.ci/linux-prepare.sh
> > > similarity index 100%
> > > rename from .travis/linux-prepare.sh
> > > rename to .ci/linux-prepare.sh
> > > diff --git a/.travis/osx-build.sh b/.ci/osx-build.sh
> > > similarity index 100%
> > > rename from .travis/osx-build.sh
> > > rename to .ci/osx-build.sh
> > > diff --git a/.travis/osx-prepare.sh b/.ci/osx-prepare.sh
> > > similarity index 100%
> > > rename from .travis/osx-prepare.sh
> > > rename to .ci/osx-prepare.sh
> > > diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
> > > new file mode 100644
> > > index 0000000000..7be75ca36c
> > > --- /dev/null
> > > +++ b/.github/workflows/test.yml
> > > @@ -0,0 +1,113 @@
> > > +name: Build and Test
> > > +
> > > +on: [push, pull_request]
> > > +
> > > +jobs:
> > > +  build-linux:
> > > +    env:
> > > +      dependencies: |
> > > +        automake libtool gcc bc libjemalloc1 libjemalloc-dev    \
> > > +        libssl-dev llvm-dev libelf-dev libnuma-dev libpcap-dev  \
> > > +        python3-openssl python3-pip python3-sphinx              \
> > > +        selinux-policy-dev
> > > +      m32_dependecies: gcc-multilib
> > > +      CC:          ${{ matrix.compiler }}
> > > +      LIBS:        ${{ matrix.libs }}
> > > +      M32:         ${{ matrix.m32 }}
> > > +      OPTS:        ${{ matrix.opts }}
> > > +      TESTSUITE:   ${{ matrix.testsuite }}
> > > +
> > > +    name: linux ${{ join(matrix.*, ' ') }}
> > > +    runs-on: ubuntu-18.04
> > > +
> > > +    strategy:
> > > +      fail-fast: false
> > > +      matrix:
> > > +        include:
> > > +          - compiler:     gcc
> > > +            opts:         --disable-ssl
> > > +          - compiler:     clang
> > > +            opts:         --disable-ssl
> > > +
> > > +          - compiler:     gcc
> > > +            testsuite:    test
> > > +          - compiler:     clang
> > > +            testsuite:    test
> > > +
> > > +          - compiler:     gcc
> > > +            testsuite:    test
> > > +            libs:         -ljemalloc
> > > +          - compiler:     clang
> > > +            testsuite:    test
> > > +            libs:         -ljemalloc
> > > +
> > > +          - compiler:     gcc
> > > +            m32:          m32
> > > +            opts:         --disable-ssl
> > > +
> > > +    steps:
> > > +    - name: checkout
> > > +      uses: actions/checkout@v2
> > > +
> > > +    - name: install required dependencies
> > > +      run:  sudo apt install -y ${{ env.dependencies }}
> > > +
> > > +    - name: install libunbound libunwind
> > > +      if:   matrix.m32 == ''
> > > +      run:  sudo apt install -y libunbound-dev libunwind-dev
> > > +
> > > +    - name: install 32-bit dependencies
> > > +      if:   matrix.m32 != ''
> > > +      run:  sudo apt install -y ${{ env.m32_dependecies }}
> > > +
> > > +    - name: prepare
> > > +      run:  ./.ci/linux-prepare.sh
> > > +
> > > +    - name: build
> > > +      run:  PATH="$PATH:$HOME/bin" ./.ci/linux-build.sh
> > > +
> > > +    - name: copy logs on failure
> > > +      if: failure() || cancelled()
> > > +      run: |
> > > +        # upload-artifact@v2 throws exceptions if it tries to upload socket
> > > +        # files and we could have some socket files in testsuite.dir.
> > > +        # Also, upload-artifact@v2 doesn't work well enough with wildcards.
> > > +        # So, we're just archiving everything here to avoid any issues.
> > > +        mkdir logs
> > > +        cp config.log ./logs/
> > > +        cp -r ./*/_build/sub/tests/testsuite.* ./logs/ || true
> > > +        tar -czvf logs.tgz logs/
> > > +
> > > +    - name: upload logs on failure
> > > +      if: failure() || cancelled()
> > > +      uses: actions/upload-artifact@v2
> > > +      with:
> > > +        name: logs-linux-${{ join(matrix.*, '-') }}
> > > +        path: logs.tgz
> > > +
> > > +  build-osx:
> > > +    env:
> > > +      CC:    clang
> > > +      OPTS:  --disable-ssl
> > > +
> > > +    name:    osx clang --disable-ssl
> > > +    runs-on: macos-latest
> > > +
> > > +    strategy:
> > > +      fail-fast: false
> > > +
> > > +    steps:
> > > +    - name: checkout
> > > +      uses: actions/checkout@v2
> > > +    - name: install dependencies
> > > +      run:  brew install automake libtool
> > > +    - name: prepare
> > > +      run:  ./.ci/osx-prepare.sh
> > > +    - name: build
> > > +      run:  PATH="$PATH:$HOME/bin" ./.ci/osx-build.sh
> > > +    - name: upload logs on failure
> > > +      if: failure()
> > > +      uses: actions/upload-artifact@v2
> > > +      with:
> > > +        name: logs-osx-clang---disable-ssl
> > > +        path: config.log
> > > diff --git a/.travis.yml b/.travis.yml
> > > deleted file mode 100644
> > > index cd853fddd9..0000000000
> > > --- a/.travis.yml
> > > +++ /dev/null
> > > @@ -1,47 +0,0 @@
> > > -language: c
> > > -compiler:
> > > -  - gcc
> > > -  - clang
> > > -
> > > -os:
> > > -  - linux
> > > -
> > > -addons:
> > > -  apt:
> > > -    packages:
> > > -      - bc
> > > -      - gcc-multilib
> > > -      - libssl-dev
> > > -      - llvm-dev
> > > -      - libjemalloc1
> > > -      - libjemalloc-dev
> > > -      - libnuma-dev
> > > -      - python-sphinx
> > > -      - libelf-dev
> > > -      - selinux-policy-dev
> > > -      - libunbound-dev
> > > -      - libunbound-dev:i386
> > > -
> > > -before_install: ./.travis/${TRAVIS_OS_NAME}-prepare.sh
> > > -
> > > -before_script: export PATH=$PATH:$HOME/bin
> > > -
> > > -env:
> > > -  - OPTS="--disable-ssl"
> > > -  - TESTSUITE=1 KERNEL=4.18.20
> > > -  - TESTSUITE=1 OPTS="--enable-shared"
> > > -  - BUILD_ENV="-m32" OPTS="--disable-ssl"
> > > -  - TESTSUITE=1 LIBS=-ljemalloc
> > > -
> > > -matrix:
> > > -  include:
> > > -    - os: osx
> > > -      compiler: clang
> > > -      env: OPTS="--disable-ssl"
> > > -
> > > -script: ./.travis/${TRAVIS_OS_NAME}-build.sh $OPTS
> > > -
> > > -notifications:
> > > -  email:
> > > -    recipients:
> > > -      - ovs-build@openvswitch.org
> > > diff --git a/Makefile.am b/Makefile.am
> > > index 221ca61be7..7ce3d27e46 100644
> > > --- a/Makefile.am
> > > +++ b/Makefile.am
> > > @@ -84,11 +84,11 @@ EXTRA_DIST = \
> > >       README.rst \
> > >       NOTICE \
> > >       .cirrus.yml \
> > > -     .travis.yml \
> > > -     .travis/linux-build.sh \
> > > -     .travis/linux-prepare.sh \
> > > -     .travis/osx-build.sh \
> > > -     .travis/osx-prepare.sh \
> > > +     .ci/linux-build.sh \
> > > +     .ci/linux-prepare.sh \
> > > +     .ci/osx-build.sh \
> > > +     .ci/osx-prepare.sh \
> > > +     .github/workflows/test.yml \
> > >       boot.sh \
> > >       $(MAN_FRAGMENTS) \
> > >       $(MAN_ROOTS) \
> > >
> >
> > _______________________________________________
> > dev mailing list
> > dev@openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> >
diff mbox series

Patch

diff --git a/.travis/linux-build.sh b/.ci/linux-build.sh
similarity index 74%
rename from .travis/linux-build.sh
rename to .ci/linux-build.sh
index a8a561dc4e..0e9f87fa8b 100755
--- a/.travis/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -3,10 +3,9 @@ 
 set -o errexit
 set -x
 
-CFLAGS="-Werror"
+CFLAGS=""
 SPARSE_FLAGS=""
-EXTRA_OPTS=""
-TARGET="x86_64-native-linuxapp-gcc"
+EXTRA_OPTS="--enable-Werror"
 
 function configure_ovs()
 {
@@ -24,16 +23,19 @@  function configure_ovn()
     { cat config.log; exit 1; }
 }
 
-OPTS="$EXTRA_OPTS $*"
+save_OPTS="${OPTS} $*"
+OPTS="${EXTRA_OPTS} ${save_OPTS}"
 
 if [ "$CC" = "clang" ]; then
     export OVS_CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument"
-elif [[ $BUILD_ENV =~ "-m32" ]]; then
-    # Disable sparse for 32bit builds on 64bit machine
-    export OVS_CFLAGS="$CFLAGS $BUILD_ENV"
+elif [ "$M32" ]; then
+    # Not using sparse for 32bit builds on 64bit machine.
+    # Adding m32 flag directly to CC to avoid any posiible issues with API/ABI
+    # difference on 'configure' and 'make' stages.
+    export CC="$CC -m32"
 else
     OPTS="$OPTS --enable-sparse"
-    export OVS_CFLAGS="$CFLAGS $BUILD_ENV $SPARSE_FLAGS"
+    export OVS_CFLAGS="$CFLAGS $SPARSE_FLAGS"
 fi
 
 if [ "$TESTSUITE" ]; then
diff --git a/.travis/linux-prepare.sh b/.ci/linux-prepare.sh
similarity index 100%
rename from .travis/linux-prepare.sh
rename to .ci/linux-prepare.sh
diff --git a/.travis/osx-build.sh b/.ci/osx-build.sh
similarity index 100%
rename from .travis/osx-build.sh
rename to .ci/osx-build.sh
diff --git a/.travis/osx-prepare.sh b/.ci/osx-prepare.sh
similarity index 100%
rename from .travis/osx-prepare.sh
rename to .ci/osx-prepare.sh
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000000..7be75ca36c
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,113 @@ 
+name: Build and Test
+
+on: [push, pull_request]
+
+jobs:
+  build-linux:
+    env:
+      dependencies: |
+        automake libtool gcc bc libjemalloc1 libjemalloc-dev    \
+        libssl-dev llvm-dev libelf-dev libnuma-dev libpcap-dev  \
+        python3-openssl python3-pip python3-sphinx              \
+        selinux-policy-dev
+      m32_dependecies: gcc-multilib
+      CC:          ${{ matrix.compiler }}
+      LIBS:        ${{ matrix.libs }}
+      M32:         ${{ matrix.m32 }}
+      OPTS:        ${{ matrix.opts }}
+      TESTSUITE:   ${{ matrix.testsuite }}
+
+    name: linux ${{ join(matrix.*, ' ') }}
+    runs-on: ubuntu-18.04
+
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+          - compiler:     gcc
+            opts:         --disable-ssl
+          - compiler:     clang
+            opts:         --disable-ssl
+
+          - compiler:     gcc
+            testsuite:    test
+          - compiler:     clang
+            testsuite:    test
+
+          - compiler:     gcc
+            testsuite:    test
+            libs:         -ljemalloc
+          - compiler:     clang
+            testsuite:    test
+            libs:         -ljemalloc
+
+          - compiler:     gcc
+            m32:          m32
+            opts:         --disable-ssl
+
+    steps:
+    - name: checkout
+      uses: actions/checkout@v2
+
+    - name: install required dependencies
+      run:  sudo apt install -y ${{ env.dependencies }}
+
+    - name: install libunbound libunwind
+      if:   matrix.m32 == ''
+      run:  sudo apt install -y libunbound-dev libunwind-dev
+
+    - name: install 32-bit dependencies
+      if:   matrix.m32 != ''
+      run:  sudo apt install -y ${{ env.m32_dependecies }}
+
+    - name: prepare
+      run:  ./.ci/linux-prepare.sh
+
+    - name: build
+      run:  PATH="$PATH:$HOME/bin" ./.ci/linux-build.sh
+
+    - name: copy logs on failure
+      if: failure() || cancelled()
+      run: |
+        # upload-artifact@v2 throws exceptions if it tries to upload socket
+        # files and we could have some socket files in testsuite.dir.
+        # Also, upload-artifact@v2 doesn't work well enough with wildcards.
+        # So, we're just archiving everything here to avoid any issues.
+        mkdir logs
+        cp config.log ./logs/
+        cp -r ./*/_build/sub/tests/testsuite.* ./logs/ || true
+        tar -czvf logs.tgz logs/
+
+    - name: upload logs on failure
+      if: failure() || cancelled()
+      uses: actions/upload-artifact@v2
+      with:
+        name: logs-linux-${{ join(matrix.*, '-') }}
+        path: logs.tgz
+
+  build-osx:
+    env:
+      CC:    clang
+      OPTS:  --disable-ssl
+
+    name:    osx clang --disable-ssl
+    runs-on: macos-latest
+
+    strategy:
+      fail-fast: false
+
+    steps:
+    - name: checkout
+      uses: actions/checkout@v2
+    - name: install dependencies
+      run:  brew install automake libtool
+    - name: prepare
+      run:  ./.ci/osx-prepare.sh
+    - name: build
+      run:  PATH="$PATH:$HOME/bin" ./.ci/osx-build.sh
+    - name: upload logs on failure
+      if: failure()
+      uses: actions/upload-artifact@v2
+      with:
+        name: logs-osx-clang---disable-ssl
+        path: config.log
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index cd853fddd9..0000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,47 +0,0 @@ 
-language: c
-compiler:
-  - gcc
-  - clang
-
-os:
-  - linux
-
-addons:
-  apt:
-    packages:
-      - bc
-      - gcc-multilib
-      - libssl-dev
-      - llvm-dev
-      - libjemalloc1
-      - libjemalloc-dev
-      - libnuma-dev
-      - python-sphinx
-      - libelf-dev
-      - selinux-policy-dev
-      - libunbound-dev
-      - libunbound-dev:i386
-
-before_install: ./.travis/${TRAVIS_OS_NAME}-prepare.sh
-
-before_script: export PATH=$PATH:$HOME/bin
-
-env:
-  - OPTS="--disable-ssl"
-  - TESTSUITE=1 KERNEL=4.18.20
-  - TESTSUITE=1 OPTS="--enable-shared"
-  - BUILD_ENV="-m32" OPTS="--disable-ssl"
-  - TESTSUITE=1 LIBS=-ljemalloc
-
-matrix:
-  include:
-    - os: osx
-      compiler: clang
-      env: OPTS="--disable-ssl"
-
-script: ./.travis/${TRAVIS_OS_NAME}-build.sh $OPTS
-
-notifications:
-  email:
-    recipients:
-      - ovs-build@openvswitch.org
diff --git a/Makefile.am b/Makefile.am
index 221ca61be7..7ce3d27e46 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -84,11 +84,11 @@  EXTRA_DIST = \
 	README.rst \
 	NOTICE \
 	.cirrus.yml \
-	.travis.yml \
-	.travis/linux-build.sh \
-	.travis/linux-prepare.sh \
-	.travis/osx-build.sh \
-	.travis/osx-prepare.sh \
+	.ci/linux-build.sh \
+	.ci/linux-prepare.sh \
+	.ci/osx-build.sh \
+	.ci/osx-prepare.sh \
+	.github/workflows/test.yml \
 	boot.sh \
 	$(MAN_FRAGMENTS) \
 	$(MAN_ROOTS) \