test(apps): fix dashboard/voucher/consent tests #28
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 test" | |
on: | |
pull_request: | |
branches: [main] | |
jobs: | |
build: | |
name: clustered buck2 builds | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
strategy: | |
matrix: | |
cluster: | |
- name: core-apis | |
targets: "//core/api //core/api-ws-server //core/api-trigger //core/api-exporter" | |
- name: core-apps | |
targets: "//apps/dashboard //apps/consent //apps/admin-panel" | |
- name: apps | |
targets: "//apps/pay //apps/map //apps/voucher" | |
- name: core-services | |
targets: "//core/api-keys //core/notifications" | |
- name: bats-helpers | |
targets: "//bats/helpers/callback:run //bats/helpers/subscriber:run //bats/helpers/totp:generate" | |
fail-fast: false | |
steps: | |
- id: vars | |
run: echo "short_sha=${GITHUB_SHA:0:7}" >> $GITHUB_ENV | |
- name: Maximize build space | |
uses: easimon/maximize-build-space@master | |
with: | |
root-reserve-mb: 15360 | |
temp-reserve-mb: 12288 | |
remove-dotnet: "true" | |
- uses: actions/checkout@v4 | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@v14 | |
- name: Run the Magic Nix Cache | |
uses: DeterminateSystems/magic-nix-cache-action@v8 | |
- name: Create cache directories | |
run: | | |
mkdir -p ~/.buck2 ~/.cache/buck2 buck-out/v2 | |
- name: Build cluster | |
run: | | |
nix develop -c buck2 build ${{ matrix.cluster.targets }} | |
- name: Prepare cache directory | |
run: | | |
# Create a cluster-specific directory | |
mkdir -p cluster-cache/${{ matrix.cluster.name }} | |
# Move buck-out contents to cluster-specific directory | |
cp -r buck-out/* cluster-cache/${{ matrix.cluster.name }}/ | |
- name: Debug cache content | |
run: | | |
echo "Cluster ${{ matrix.cluster.name }} cache size:" | |
du -sh cluster-cache/${{ matrix.cluster.name }} | |
- uses: actions/cache/save@v4 | |
with: | |
path: cluster-cache/${{ matrix.cluster.name }} | |
key: b2-${{ matrix.cluster.name }}-${{ env.short_sha }} | |
enableCrossOsArchive: true | |
tests: | |
name: execute via bats | |
runs-on: ubuntu-latest | |
timeout-minutes: 25 | |
needs: build | |
steps: | |
- id: vars | |
run: echo "short_sha=${GITHUB_SHA:0:7}" >> $GITHUB_ENV | |
- name: Maximize build space | |
uses: easimon/maximize-build-space@master | |
with: | |
root-reserve-mb: 15360 | |
temp-reserve-mb: 12288 | |
remove-dotnet: "true" | |
- uses: actions/checkout@v4 | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@v14 | |
- name: Run the Magic Nix Cache | |
uses: DeterminateSystems/magic-nix-cache-action@v8 | |
- name: Create cache directories | |
run: | | |
mkdir -p ~/.buck2 ~/.cache/buck2 buck-out/v2 cluster-cache | |
# Restore each cluster cache separately | |
- name: Restore core-apis cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: cluster-cache/core-apis | |
key: b2-core-apis-${{ env.short_sha }} | |
fail-on-cache-miss: true | |
- name: Restore core-apps cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: cluster-cache/core-apps | |
key: b2-core-apps-${{ env.short_sha }} | |
fail-on-cache-miss: true | |
- name: Restore apps cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: cluster-cache/apps | |
key: b2-apps-${{ env.short_sha }} | |
fail-on-cache-miss: true | |
- name: Restore core-services cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: cluster-cache/core-services | |
key: b2-core-services-${{ env.short_sha }} | |
fail-on-cache-miss: true | |
- name: Restore bats-helpers cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: cluster-cache/bats-helpers | |
key: b2-bats-helpers-${{ env.short_sha }} | |
fail-on-cache-miss: true | |
- name: Merge cluster caches | |
run: | | |
# Remove existing buck-out if it exists | |
rm -rf buck-out | |
# Move the first cluster's contents directly to buck-out | |
if [ -d "cluster-cache/core-apis" ]; then | |
echo "Moving core-apis cache to buck-out" | |
mv cluster-cache/core-apis buck-out | |
fi | |
# For remaining clusters, move their contents into the existing buck-out | |
for cluster in core-apps apps core-services bats-helpers; do | |
if [ -d "cluster-cache/$cluster" ]; then | |
echo "Merging cache from $cluster" | |
# Use find to move all contents, handling any permission issues | |
find "cluster-cache/$cluster" -mindepth 1 -maxdepth 1 -exec mv -f {} buck-out/ \; | |
fi | |
done | |
# Ensure correct permissions | |
chmod -R u+w buck-out | |
- name: Debug restored caches | |
run: | | |
echo "Buck-out size after merge:" | |
du -sh buck-out | |
echo "Buck-out structure:" | |
find buck-out -type d | |
echo "Permissions:" | |
ls -la buck-out/ | |
- name: Run bats tests | |
run: | | |
echo "Buck build status before tests:" | |
nix develop -c buck2 build --show-output \ | |
//core/api //core/api-ws-server //core/api-trigger //core/api-exporter \ | |
//apps/dashboard //apps/consent //apps/pay //apps/admin-panel //apps/map //apps/voucher \ | |
//core/api-keys //core/notifications \ | |
//bats/helpers/callback:run //bats/helpers/subscriber:run //bats/helpers/totp:generate | |
nix develop -c bats --setup-suite-file bats/ci_setup_suite.bash -t bats/core/** | |
- name: Rename Tilt log | |
if: always() | |
run: mv bats/.e2e-tilt.log bats/e2e-tilt.log | |
- name: Upload Tilt log | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Tilt log | |
path: bats/e2e-tilt.log |