Merge pull request #18426 from gustavotrott/aut-tests-with-cache2.7-b

ci(tests): Speed up building time by using cache
This commit is contained in:
Anton Georgiev 2023-08-04 10:41:05 -04:00 committed by GitHub
commit 27d38c8678
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 218 additions and 35 deletions

View File

@ -20,9 +20,25 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- run: ./build/get_external_dependencies.sh with:
- run: ./build/setup.sh bbb-apps-akka fetch-depth: 0 # Fetch all history
- run: tar cvf artifacts.tar artifacts/ - run: echo "CACHE_AKKA_APPS_KEY=$(git log -1 --format=%H -- akka-bbb-apps)" >> $GITHUB_ENV
- run: echo "CACHE_COMMON_MSG_KEY=$(git log -1 --format=%H -- bbb-common-message)" >> $GITHUB_ENV
- run: echo "CACHE_BBB_RELEASE_KEY=$(git log -1 --format=%H -- bigbluebutton-config/bigbluebutton-release)" >> $GITHUB_ENV
- run: echo "FORCE_GIT_REV=0" >> $GITHUB_ENV #used by setup.sh
- run: echo "FORCE_COMMIT_DATE=0" >> $GITHUB_ENV #used by setup.sh
- name: Handle cache
id: cache-action
uses: actions/cache@v3
with:
path: artifacts.tar
key: ${{ runner.os }}-bbb-apps-akka-${{ env.CACHE_AKKA_APPS_KEY }}-${{ env.CACHE_COMMON_MSG_KEY }}-${{ env.CACHE_BBB_RELEASE_KEY }}
- if: ${{ steps.cache-action.outputs.cache-hit != 'true' }}
name: Generate artifacts
run: |
./build/get_external_dependencies.sh
./build/setup.sh bbb-apps-akka
tar cvf artifacts.tar artifacts/
- name: Archive packages - name: Archive packages
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
@ -33,22 +49,107 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- run: ./build/get_external_dependencies.sh - run: echo "FORCE_GIT_REV=0" >> $GITHUB_ENV #used by setup.sh
- run: ./build/setup.sh bbb-config - run: echo "FORCE_COMMIT_DATE=0" >> $GITHUB_ENV #used by setup.sh
- run: tar cvf artifacts.tar artifacts/ - run: |
./build/get_external_dependencies.sh
./build/setup.sh bbb-config
tar cvf artifacts.tar artifacts/
- name: Archive packages - name: Archive packages
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: artifacts_bbb-config.tar name: artifacts_bbb-config.tar
path: artifacts.tar
build-bbb-export-annotations:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- run: echo "FORCE_GIT_REV=0" >> $GITHUB_ENV #used by setup.sh
- run: echo "FORCE_COMMIT_DATE=0" >> $GITHUB_ENV #used by setup.sh
- run: |
./build/get_external_dependencies.sh
./build/setup.sh bbb-export-annotations
tar cvf artifacts.tar artifacts/
- name: Archive packages
uses: actions/upload-artifact@v3
with:
name: artifacts_bbb-export-annotations.tar
path: artifacts.tar
build-bbb-learning-dashboard:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch all history
- run: echo "CACHE_LEARNING_DASHBOARD_KEY=$(git log -1 --format=%H -- bbb-learning-dashboard)" >> $GITHUB_ENV
- run: echo "CACHE_BBB_RELEASE_KEY=$(git log -1 --format=%H -- bigbluebutton-config/bigbluebutton-release)" >> $GITHUB_ENV
- run: echo "FORCE_GIT_REV=0" >> $GITHUB_ENV #used by setup.sh
- run: echo "FORCE_COMMIT_DATE=0" >> $GITHUB_ENV #used by setup.sh
- name: Handle cache
id: cache-action
uses: actions/cache@v3
with:
path: artifacts.tar
key: ${{ runner.os }}-bbb-learning-dashboard-${{ env.CACHE_LEARNING_DASHBOARD_KEY }}-${{ env.CACHE_BBB_RELEASE_KEY }}
- if: ${{ steps.cache-action.outputs.cache-hit != 'true' }}
name: Generate artifacts
run: |
./build/get_external_dependencies.sh
./build/setup.sh bbb-learning-dashboard
tar cvf artifacts.tar artifacts/
- name: Archive packages
uses: actions/upload-artifact@v3
with:
name: artifacts_bbb-learning-dashboard.tar
path: artifacts.tar
build-bbb-playback-record:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- run: ./build/get_external_dependencies.sh
- run: echo "FORCE_GIT_REV=0" >> $GITHUB_ENV #used by setup.sh
- run: echo "FORCE_COMMIT_DATE=0" >> $GITHUB_ENV #used by setup.sh
- run: ./build/setup.sh bbb-playback
- run: ./build/setup.sh bbb-playback-notes
- run: ./build/setup.sh bbb-playback-podcast
- run: ./build/setup.sh bbb-playback-presentation
- run: ./build/setup.sh bbb-playback-screenshare
- run: ./build/setup.sh bbb-playback-video
- run: ./build/setup.sh bbb-record-core
- run: tar cvf artifacts.tar artifacts/
- name: Archive packages
uses: actions/upload-artifact@v3
with:
name: artifacts_bbb-playback-record.tar
path: | path: |
artifacts.tar artifacts.tar
build-bbb-etherpad: build-bbb-etherpad:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- run: ./build/get_external_dependencies.sh with:
- run: ./build/setup.sh bbb-etherpad fetch-depth: 0 # Fetch all history
- run: tar cvf artifacts.tar artifacts/ - run: echo "CACHE_ETHERPAD_VERSION_KEY=$(git log -1 --format=%H -- bbb-etherpad.placeholder.sh)" >> $GITHUB_ENV
- run: echo "CACHE_ETHERPAD_BUILD_KEY=$(git log -1 --format=%H -- build/packages-template/bbb-etherpad)" >> $GITHUB_ENV
- run: echo "CACHE_URL1_KEY=$(curl -s https://api.github.com/repos/mconf/ep_pad_ttl/commits | md5sum | awk '{ print $1 }')" >> $GITHUB_ENV
- run: echo "CACHE_URL2_KEY=$(curl -s https://api.github.com/repos/alangecker/bbb-etherpad-plugin/commits | md5sum | awk '{ print $1 }')" >> $GITHUB_ENV
- run: echo "CACHE_URL3_KEY=$(curl -s https://api.github.com/repos/mconf/ep_redis_publisher/commits | md5sum | awk '{ print $1 }')" >> $GITHUB_ENV
- run: echo "CACHE_URL4_KEY=$(curl -s https://api.github.com/repos/alangecker/bbb-etherpad-skin/commits | md5sum | awk '{ print $1 }')" >> $GITHUB_ENV
- run: echo "CACHE_BBB_RELEASE_KEY=$(git log -1 --format=%H -- bigbluebutton-config/bigbluebutton-release)" >> $GITHUB_ENV
- run: echo "FORCE_GIT_REV=0" >> $GITHUB_ENV #used by setup.sh
- run: echo "FORCE_COMMIT_DATE=0" >> $GITHUB_ENV #used by setup.sh
- name: Handle cache
id: cache-action
uses: actions/cache@v3
with:
path: artifacts.tar
key: ${{ runner.os }}-bbb-etherpad-${{ env.CACHE_ETHERPAD_VERSION_KEY }}-${{ env.CACHE_ETHERPAD_BUILD_KEY }}-${{ env.CACHE_URL1_KEY }}-${{ env.CACHE_URL2_KEY }}-${{ env.CACHE_URL3_KEY }}-${{ env.CACHE_URL4_KEY }}-${{ env.CACHE_BBB_RELEASE_KEY }}
- if: ${{ steps.cache-action.outputs.cache-hit != 'true' }}
name: Generate artifacts
run: |
./build/get_external_dependencies.sh
./build/setup.sh bbb-etherpad
tar cvf artifacts.tar artifacts/
- name: Archive packages - name: Archive packages
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
@ -59,9 +160,26 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- run: ./build/get_external_dependencies.sh with:
- run: ./build/setup.sh bbb-web fetch-depth: 0 # Fetch all history
- run: tar cvf artifacts.tar artifacts/ - run: echo "CACHE_BBB_WEB_KEY=$(git log -1 --format=%H -- bigbluebutton-web)" >> $GITHUB_ENV
- run: echo "CACHE_COMMON_MSG_KEY=$(git log -1 --format=%H -- bbb-common-message)" >> $GITHUB_ENV
- run: echo "CACHE_COMMON_WEB_KEY=$(git log -1 --format=%H -- bbb-common-web)" >> $GITHUB_ENV
- run: echo "CACHE_BBB_RELEASE_KEY=$(git log -1 --format=%H -- bigbluebutton-config/bigbluebutton-release)" >> $GITHUB_ENV
- run: echo "FORCE_GIT_REV=0" >> $GITHUB_ENV #used by setup.sh
- run: echo "FORCE_COMMIT_DATE=0" >> $GITHUB_ENV #used by setup.sh
- name: Handle cache
id: cache-action
uses: actions/cache@v3
with:
path: artifacts.tar
key: ${{ runner.os }}-bbb-web-${{ env.CACHE_BBB_WEB_KEY }}-${{ env.CACHE_COMMON_MSG_KEY }}-${{ env.CACHE_COMMON_WEB_KEY }}-${{ env.CACHE_BBB_RELEASE_KEY }}
- if: ${{ steps.cache-action.outputs.cache-hit != 'true' }}
name: Generate artifacts
run: |
./build/get_external_dependencies.sh
./build/setup.sh bbb-web
tar cvf artifacts.tar artifacts/
- name: Archive packages - name: Archive packages
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
@ -72,9 +190,25 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- run: ./build/get_external_dependencies.sh with:
- run: ./build/setup.sh bbb-fsesl-akka fetch-depth: 0 # Fetch all history
- run: tar cvf artifacts.tar artifacts/ - run: echo "CACHE_AKKA_FSESL_KEY=$(git log -1 --format=%H -- akka-bbb-fsesl)" >> $GITHUB_ENV
- run: echo "CACHE_COMMON_MSG_KEY=$(git log -1 --format=%H -- bbb-common-message)" >> $GITHUB_ENV
- run: echo "CACHE_BBB_RELEASE_KEY=$(git log -1 --format=%H -- bigbluebutton-config/bigbluebutton-release)" >> $GITHUB_ENV
- run: echo "FORCE_GIT_REV=0" >> $GITHUB_ENV #used by setup.sh
- run: echo "FORCE_COMMIT_DATE=0" >> $GITHUB_ENV #used by setup.sh
- name: Handle cache
id: cache-action
uses: actions/cache@v3
with:
path: artifacts.tar
key: ${{ runner.os }}-bbb-fsesl-akka-${{ env.CACHE_AKKA_FSESL_KEY }}-${{ env.CACHE_COMMON_MSG_KEY }}-${{ env.CACHE_BBB_RELEASE_KEY }}
- if: ${{ steps.cache-action.outputs.cache-hit != 'true' }}
name: Generate artifacts
run: |
./build/get_external_dependencies.sh
./build/setup.sh bbb-fsesl-akka
tar cvf artifacts.tar artifacts/
- name: Archive packages - name: Archive packages
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
@ -85,10 +219,25 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- run: ./build/get_external_dependencies.sh with:
- run: ./build/setup.sh bbb-html5-nodejs fetch-depth: 0 # Fetch all history
- run: ./build/setup.sh bbb-html5 - run: echo "CACHE_KEY=$(git log -1 --format=%H -- bigbluebutton-html5)" >> $GITHUB_ENV
- run: tar cvf artifacts.tar artifacts/ - run: echo "CACHE_BBB_RELEASE_KEY=$(git log -1 --format=%H -- bigbluebutton-config/bigbluebutton-release)" >> $GITHUB_ENV
- run: echo "FORCE_GIT_REV=0" >> $GITHUB_ENV #used by setup.sh
- run: echo "FORCE_COMMIT_DATE=0" >> $GITHUB_ENV #used by setup.sh
- name: Handle cache
id: cache-action
uses: actions/cache@v3
with:
path: artifacts.tar
key: ${{ runner.os }}-bbb-html5-${{ env.CACHE_KEY }}-${{ env.CACHE_BBB_RELEASE_KEY }}
- if: ${{ steps.cache-action.outputs.cache-hit != 'true' }}
name: Generate artifacts
run: |
./build/get_external_dependencies.sh
./build/setup.sh bbb-html5-nodejs
./build/setup.sh bbb-html5
tar cvf artifacts.tar artifacts/
- name: Archive packages - name: Archive packages
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
@ -99,10 +248,27 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- run: ./build/get_external_dependencies.sh with:
- run: ./build/setup.sh bbb-freeswitch-core fetch-depth: 0 # Fetch all history
- run: ./build/setup.sh bbb-freeswitch-sounds - run: echo "CACHE_FREESWITCH_KEY=$(git log -1 --format=%H -- build/packages-template/bbb-freeswitch-core)" >> $GITHUB_ENV
- run: tar cvf artifacts.tar artifacts/ - run: echo "CACHE_FREESWITCH_SOUNDS_KEY=$(git log -1 --format=%H -- build/packages-template/bbb-freeswitch-sounds)" >> $GITHUB_ENV
- run: echo "CACHE_SOUNDS_KEY=$(curl -Is http://bigbluebutton.org/downloads/sounds.tar.gz | grep "Last-Modified" | md5sum | awk '{ print $1 }')" >> $GITHUB_ENV
- run: echo "CACHE_BBB_RELEASE_KEY=$(git log -1 --format=%H -- bigbluebutton-config/bigbluebutton-release)" >> $GITHUB_ENV
- run: echo "FORCE_GIT_REV=0" >> $GITHUB_ENV #used by setup.sh
- run: echo "FORCE_COMMIT_DATE=0" >> $GITHUB_ENV #used by setup.sh
- name: Handle cache
id: cache-action
uses: actions/cache@v3
with:
path: artifacts.tar
key: ${{ runner.os }}-bbb-freeswitch-${{ env.CACHE_FREESWITCH_KEY }}-${{ env.CACHE_FREESWITCH_SOUNDS_KEY }}-${{ env.CACHE_SOUNDS_KEY }}-${{ env.CACHE_BBB_RELEASE_KEY }}
- if: ${{ steps.cache-action.outputs.cache-hit != 'true' }}
name: Generate artifacts
run: |
./build/get_external_dependencies.sh
./build/setup.sh bbb-freeswitch-core
./build/setup.sh bbb-freeswitch-sounds
tar cvf artifacts.tar artifacts/
- name: Archive packages - name: Archive packages
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
@ -114,18 +280,11 @@ jobs:
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- run: ./build/get_external_dependencies.sh - run: ./build/get_external_dependencies.sh
- run: ./build/setup.sh bbb-export-annotations - run: echo "FORCE_GIT_REV=0" >> $GITHUB_ENV #used by setup.sh
- run: ./build/setup.sh bbb-learning-dashboard - run: echo "FORCE_COMMIT_DATE=0" >> $GITHUB_ENV #used by setup.sh
- run: ./build/setup.sh bbb-libreoffice-docker
- run: ./build/setup.sh bbb-mkclean - run: ./build/setup.sh bbb-mkclean
- run: ./build/setup.sh bbb-pads - run: ./build/setup.sh bbb-pads
- run: ./build/setup.sh bbb-playback - run: ./build/setup.sh bbb-libreoffice-docker
- run: ./build/setup.sh bbb-playback-notes
- run: ./build/setup.sh bbb-playback-podcast
- run: ./build/setup.sh bbb-playback-presentation
- run: ./build/setup.sh bbb-playback-screenshare
- run: ./build/setup.sh bbb-playback-video
- run: ./build/setup.sh bbb-record-core
- run: ./build/setup.sh bbb-webrtc-sfu - run: ./build/setup.sh bbb-webrtc-sfu
- run: ./build/setup.sh bbb-webrtc-recorder - run: ./build/setup.sh bbb-webrtc-recorder
- run: ./build/setup.sh bbb-transcription-controller - run: ./build/setup.sh bbb-transcription-controller
@ -148,7 +307,7 @@ jobs:
# mv artifacts /home/runner/work/bigbluebutton/bigbluebutton/artifacts/ # mv artifacts /home/runner/work/bigbluebutton/bigbluebutton/artifacts/
# EOF # EOF
install-and-run-tests: install-and-run-tests:
needs: [build-bbb-apps-akka, build-bbb-config, build-bbb-etherpad, build-bbb-bbb-web, build-bbb-fsesl-akka, build-bbb-html5, build-bbb-freeswitch, build-others] needs: [build-bbb-apps-akka, build-bbb-config, build-bbb-export-annotations, build-bbb-learning-dashboard, build-bbb-playback-record, build-bbb-etherpad, build-bbb-bbb-web, build-bbb-fsesl-akka, build-bbb-html5, build-bbb-freeswitch, build-others]
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
@ -163,6 +322,21 @@ jobs:
with: with:
name: artifacts_bbb-config.tar name: artifacts_bbb-config.tar
- run: tar xf artifacts.tar - run: tar xf artifacts.tar
- name: Download artifacts_bbb-export-annotations
uses: actions/download-artifact@v3
with:
name: artifacts_bbb-export-annotations.tar
- run: tar xf artifacts.tar
- name: Download artifacts_bbb-learning-dashboard
uses: actions/download-artifact@v3
with:
name: artifacts_bbb-learning-dashboard.tar
- run: tar xf artifacts.tar
- name: Download artifacts_bbb-playback-record
uses: actions/download-artifact@v3
with:
name: artifacts_bbb-playback-record.tar
- run: tar xf artifacts.tar
- name: Download artifacts_bbb-etherpad - name: Download artifacts_bbb-etherpad
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
@ -197,7 +371,7 @@ jobs:
run: | run: |
set -e set -e
pwd pwd
ls echo "----ls artifacts/----"
ls artifacts/ ls artifacts/
echo "Done" echo "Done"
- name: Generate CA - name: Generate CA

View File

@ -24,6 +24,15 @@ else
fi fi
COMMIT_DATE="$(git log -n1 --pretty='format:%cd' --date=format:'%Y%m%dT%H%M%S')" COMMIT_DATE="$(git log -n1 --pretty='format:%cd' --date=format:'%Y%m%dT%H%M%S')"
# FORCE_GIT_REV and FORCE_COMMIT_DATE are useful for Github Actions be able to cache previous packages
# It sets FORCE_GIT_REV=0 and FORCE_COMMIT_DATE=0 in order to keep the same package version always
if [ ! -z "$FORCE_GIT_REV" ]; then
GIT_REV=$FORCE_GIT_REV
fi
if [ ! -z "$FORCE_COMMIT_DATE" ]; then
COMMIT_DATE=$FORCE_COMMIT_DATE
fi
# Arrange to write the docker container ID to a temp file, then run # Arrange to write the docker container ID to a temp file, then run
# the container detached and immediately attach it (without stdin) so # the container detached and immediately attach it (without stdin) so
# we can catch CTRL-C in this script and kill the container if so. # we can catch CTRL-C in this script and kill the container if so.