Longevity test (#3740)
<!-- PR description--> Longevity test which runs every night on same repo with the latest release code. #### Does this PR need a docs update or release note? - [ ] ⛔ No #### Type of change <!--- Please check the type of change your PR introduces: ---> - [ ] 🧹 Tech Debt/Cleanup #### Issue(s) <!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. --> * [#<issue>](https://github.com/alcionai/corso/issues/3679) #### Test Plan <!-- How will this be tested prior to merging.--> - [ ] 💪 Manual
This commit is contained in:
parent
662d626809
commit
be500e9b92
118
.github/workflows/longetivity_test.yml
vendored
Normal file
118
.github/workflows/longetivity_test.yml
vendored
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
name: Longetivity Testing
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
# Run every day at 04:00 GMT (roughly 8pm PST)
|
||||||
|
- cron: "0 4 * * *"
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
user:
|
||||||
|
description: 'User to run longetivity test on'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
# required to retrieve AWS credentials
|
||||||
|
id-token: write
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
# cancel currently running jobs if a new version of the branch is pushed
|
||||||
|
concurrency:
|
||||||
|
group: longevity_testing-${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
SetM365App:
|
||||||
|
uses: alcionai/corso/.github/workflows/accSelector.yaml@main
|
||||||
|
|
||||||
|
Longevity-Tests:
|
||||||
|
needs: [ SetM365App ]
|
||||||
|
environment: Testing
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
# Need these in the local env so that corso can read them
|
||||||
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY_SECRET }}
|
||||||
|
AZURE_CLIENT_ID: ${{ secrets[needs.SetM365App.outputs.client_id_env] }}
|
||||||
|
AZURE_CLIENT_SECRET: ${{ secrets[needs.SetM365App.outputs.client_secret_env] }}
|
||||||
|
AZURE_TENANT_ID: ${{ secrets.TENANT_ID }}
|
||||||
|
CORSO_PASSPHRASE: ${{ secrets.INTEGRATION_TEST_CORSO_PASSPHRASE }}
|
||||||
|
# re-used values
|
||||||
|
CORSO_LOG_DIR: ${{ github.workspace }}/src/testlog
|
||||||
|
CORSO_LOG_FILE: ${{ github.workspace }}/src/testlog/run-longevity.log
|
||||||
|
RESTORE_DEST_PFX: Corso_Test_Longevity_
|
||||||
|
TEST_USER: ${{ github.event.inputs.user != '' && github.event.inputs.user || secrets.CORSO_M365_TEST_USER_ID }}
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: src
|
||||||
|
|
||||||
|
##########################################################################################################################################
|
||||||
|
# setup
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Get version string
|
||||||
|
id: version
|
||||||
|
run: |
|
||||||
|
echo version=$(git describe --tags --abbrev=0) | tee -a $GITHUB_OUTPUT
|
||||||
|
git describe --tags --abbrev=0
|
||||||
|
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
ref: ${{ steps.version.outputs.version }}
|
||||||
|
|
||||||
|
- name: Setup Golang with cache
|
||||||
|
uses: magnetikonline/action-golang-cache@v4
|
||||||
|
with:
|
||||||
|
go-version-file: src/go.mod
|
||||||
|
|
||||||
|
- run: go build -o corso
|
||||||
|
- run: go build -o longevity-test ./cmd/longevity_test
|
||||||
|
|
||||||
|
- run: mkdir ${CORSO_LOG_DIR}
|
||||||
|
|
||||||
|
##########################################################################################################################################
|
||||||
|
|
||||||
|
# Repository commands
|
||||||
|
|
||||||
|
- name: Version Test
|
||||||
|
run: |
|
||||||
|
./corso --version | grep -c 'Corso version:'
|
||||||
|
|
||||||
|
- name: Repo init test
|
||||||
|
id: repo-init
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
prefix='longevity'
|
||||||
|
echo -e "\nRepo init test\n" >> ${{ env.CORSO_LOG_FILE }}
|
||||||
|
./corso repo init s3 \
|
||||||
|
--no-stats \
|
||||||
|
--hide-progress \
|
||||||
|
--prefix $prefix \
|
||||||
|
--bucket ${{ secrets.CI_TESTS_S3_BUCKET }} \
|
||||||
|
--succeed-if-exists \
|
||||||
|
2>&1 | tee ${{ env.CORSO_LOG_DIR }}/gotest-repo-init.log
|
||||||
|
|
||||||
|
if ! grep -q 'Initialized a S3 repository within bucket' ${{ env.CORSO_LOG_DIR }}/gotest-repo-init.log
|
||||||
|
then
|
||||||
|
echo "Repo could not be initialized"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo result="$prefix" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Repo connect test
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
echo -e "\nRepo connect test\n" >> ${{ env.CORSO_LOG_FILE }}
|
||||||
|
./corso repo connect s3 \
|
||||||
|
--no-stats \
|
||||||
|
--hide-progress \
|
||||||
|
--prefix ${{ steps.repo-init.outputs.result }} \
|
||||||
|
--bucket ${{ secrets.CI_TESTS_S3_BUCKET }} \
|
||||||
|
2>&1 | tee ${{ env.CORSO_LOG_DIR }}/gotest-repo-connect.log
|
||||||
|
|
||||||
|
if ! grep -q 'Connected to S3 bucket' ${{ env.CORSO_LOG_DIR }}/gotest-repo-connect.log
|
||||||
|
then
|
||||||
|
echo "Repo could not be connected"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
##########################################################################################################################################
|
||||||
Loading…
x
Reference in New Issue
Block a user