test(apps): fix dashboard/voucher/consent tests #30
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: "//:node_modules //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: Install rsync | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y rsync | |
- 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, use rsync to merge their contents | |
for cluster in core-apps apps core-services bats-helpers; do | |
if [ -d "cluster-cache/$cluster" ]; then | |
echo "Merging cache from $cluster" | |
rsync -a "cluster-cache/$cluster/" buck-out/ | |
fi | |
done | |
# Ensure correct permissions | |
chmod -R u+w buck-out | |
- name: Debug restored caches | |
run: | | |
echo "Contents before cleanup:" | |
ls -la cluster-cache/ || true | |
echo "Buck-out size after merge:" | |
du -sh buck-out | |
echo "Buck-out structure:" | |
find buck-out -type d -maxdepth 6 | |
echo "Permissions:" | |
ls -la buck-out/ | |
- name: Cleanup cluster cache | |
run: | | |
rm -rf cluster-cache | |
- 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 |