Hi Michael, thanks for the feedback, and here are some comments below.
> On 10/13/21 4:03 AM, Serena He wrote:
> > CI jobs are triggered only for repos installed with given GHApp and
> > runners
> >
> > Cc: [email protected]
> >
> > Signed-off-by: Serena He <[email protected]>
> >
> > ---
> > .github/workflows/build-arm64.yml | 118
> ++++++++++++++++++++++++++++++
> > 1 file changed, 118 insertions(+)
> > create mode 100644 .github/workflows/build-arm64.yml
> >
> > diff --git a/.github/workflows/build-arm64.yml
> > b/.github/workflows/build-arm64.yml
> > new file mode 100644
> > index 0000000000..570563f7c8
> > --- /dev/null
> > +++ b/.github/workflows/build-arm64.yml
> Adding a new workflow should work on our 0-day-bot. We now support
> having multiple workflows so this looks good
Great!
> > @@ -0,0 +1,118 @@
> > +name: build-arm64
> > +
> > +on:
> > + push:
> > + schedule:
> > + - cron: '0 0 * * 1'
> nit: Please add a comment for when this is scheduled so we dont have to do
> cron math :)
Sure, I will add that.
> > +
> > +defaults:
> > + run:
> > + shell: bash --noprofile --norc -exo pipefail {0}
> > +
> > +jobs:
> > + build:
> > + # Here, runners for arm64 are accessed by installed GitHub APP, thus
> will not be available by fork.
> > + # you can change the following 'if' and 'runs-on' if you have your own
> runners installed.
> > + # or request to get your repo on the whitelist to use GitHub APP and
> delete this 'if'.
> I think I understand. I think you mean s/GitHub APP/GitHub/ . otherwise I
> dont know what that is. From my understanding you had to request special
> arm-based runners from github
>
> Are DPDK/dpdk and ovsrobot/dpdk whitelisted to use the arm-based
> runners?
>
> Maybe there was a thread about this in the past that I missed, but where and
> how do you get these arm-based runners from github?
GitHub APPs are integrations with the GitHub APIs and this one provided here
will send requests for arm-based runners from AWS cloud. Document will be
provided along with the APP to make better understanding after release.
DPDK/dpdk and ovsrobot/dpdk are both whitelisted to use.
> > + if: ${{ github.repository == 'DPDK/dpdk' || github.repository ==
> 'ovsrobot/dpdk' }}
[...]
> > + - name: Generate cache keys
> > + id: get_ref_keys
> > + run: |
> > + echo -n '::set-output name=ccache::'
> > + echo 'ccache-${{ matrix.config.os }}-${{ matrix.config.compiler }}-
> ${{ matrix.config.cross }}-'$(date -u +%Y-w%W)
> > + echo -n '::set-output name=libabigail::'
> > + echo 'libabigail-${{ matrix.config.os }}'
> > + echo -n '::set-output name=abi::'
> > + echo 'abi-${{ matrix.config.os }}-${{ matrix.config.compiler }}-
> ${{ matrix.config.cross }}-${{ env.LIBABIGAIL_VERSION }}-
> ${{ env.REF_GIT_TAG }}'
> > + - name: Retrieve ccache cache
> > + uses: actions/cache@v2
> > + with:
> > + path: ~/.ccache
> > + key: ${{ steps.get_ref_keys.outputs.ccache }}-${{ github.ref }}
> > + restore-keys: |
> > + ${{ steps.get_ref_keys.outputs.ccache }}-refs/heads/main
> > + - name: Retrieve libabigail cache
> > + id: libabigail-cache
> > + uses: actions/cache@v2
> > + if: env.ABI_CHECKS == 'true'
> > + with:
> > + path: libabigail
> > + key: ${{ steps.get_ref_keys.outputs.libabigail }}
> > + - name: Retrieve ABI reference cache
> > + uses: actions/cache@v2
> > + if: env.ABI_CHECKS == 'true'
> > + with:
> > + path: reference
> > + key: ${{ steps.get_ref_keys.outputs.abi }}
> > + - name: Update APT cache
> > + run: sudo apt update || true
> > + - name: Install packages
> > + run: sudo apt install -y ccache libnuma-dev python3-setuptools
> > + python3-wheel python3-pip python3-pyelftools ninja-build libbsd-dev
> > + libpcap-dev libibverbs-dev libcrypto++-dev libfdt-dev
> > libjansson-dev
> > + libarchive-dev zlib1g-dev pkgconf
> > + - name: Install libabigail build dependencies if no cache is available
> > + if: env.ABI_CHECKS == 'true' && steps.libabigail-cache.outputs.cache-
> hit != 'true'
> > + run: sudo apt install -y autoconf automake libtool pkg-config
> > libxml2-
> dev
> > + libdw-dev
> Lots of caching stuff. All of it needed?
All these caching stuff is in consistence with the build workflow on GitHub
provided runners, so should be needed.