Introduce in-memory caching package #1848
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: e2e | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: | |
- main | |
permissions: | |
contents: read | |
jobs: | |
git-test: | |
if: github.actor != 'dependabot[bot]' | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
provider: | |
- gitkit | |
- gitlab-ce | |
- gitlab | |
- github | |
steps: | |
- name: Checkout | |
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 | |
# Since this is a monorepo, changes in other packages will also trigger these e2e tests | |
# meant only for the git package. This detects us whether the changed files are part of the | |
# git directory. Subsequent steps check if this is true, before executing, thus helping us | |
# run these tests only when there are changes to the git package. | |
- name: Check for changes to git/ or e2e workflow | |
uses: dorny/paths-filter@v3 | |
id: filter | |
with: | |
filters: | | |
e2e: | |
- '.github/workflows/e2e.yaml' | |
git: | |
- 'git/**' | |
- name: Setup Go | |
if: ${{ steps.filter.outputs.git == 'true' || steps.filter.outputs.e2e == 'true' || github.event_name == 'workflow_dispatch' }} | |
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 | |
with: | |
go-version: 1.22.x | |
# https://github.com/actions/setup-go/blob/main/docs/adrs/0000-caching-dependencies.md#example-of-real-use-cases | |
cache-dependency-path: | | |
**/go.sum | |
**/go.mod | |
- name: Run tests | |
if: ${{ steps.filter.outputs.git == 'true' || steps.filter.outputs.e2e == 'true' || github.event_name == 'workflow_dispatch' }} | |
run: | | |
run_e2e=true | |
# don't run e2e tests for PRs from forked repos for Github, GitLab and Bitbucket Server | |
if [[ ${{ github.event_name }} != "pull_request" ]] || \ | |
[[ "${{ github.event.pull_request.head.repo.full_name }}" = ${{ github.repository }} ]]; then | |
if [[ ${{ matrix.provider }} = "github" ]]; then | |
export GO_TEST_PREFIX="TestGitHubE2E" | |
export GITHUB_USER="fluxcd-gitprovider-bot" | |
export GITHUB_ORG="fluxcd-testing" | |
export GITHUB_TOKEN="${{ secrets.GITPROVIDER_BOT_TOKEN }}" | |
elif [[ ${{ matrix.provider }} = "gitlab" ]]; then | |
export GO_TEST_PREFIX="TestGitLabE2E" | |
export GITLAB_USER="fluxcd-gitprovider-bot" | |
export GITLAB_GROUP="fluxcd-testing" | |
export GITLAB_PAT="${{ secrets.GITLAB_BOT_TOKEN }}" | |
fi | |
else | |
run_e2e=false | |
fi | |
if [[ ${{ matrix.provider }} = "gitkit" ]]; then | |
export GO_TEST_PREFIX="TestGitKitE2E" | |
run_e2e=true | |
elif [[ ${{ matrix.provider }} = "gitlab-ce" ]]; then | |
export GO_TEST_PREFIX="TestGitLabCEE2E" | |
run_e2e=true | |
fi | |
if [ $run_e2e = true ]; then | |
cd git/internal/e2e && GO_TEST_PREFIX="${GO_TEST_PREFIX}" ./run.sh | |
else | |
echo "skipping tests for ${{ matrix.provider }}" | |
fi |