feat: sshnp pure dart for direct ssh #824
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: end2end_tests | |
permissions: | |
contents: read | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- trunk | |
pull_request: | |
branches: | |
- trunk | |
env: | |
SSHNP_ATSIGN: "@8incanteater" | |
SSHNPD_ATSIGN: "@8052simple" | |
SSHRVD_ATSIGN: "@8485wealthy51" | |
PROD_AM_RVD_ATSIGN: "@rv_am" | |
PROD_AP_RVD_ATSIGN: "@rv_ap" | |
PROD_EU_RVD_ATSIGN: "@rv_eu" | |
PROD_RVD_ATSIGN: "PROD_AM_RVD_ATSIGN" # Use am by default for PROD tests | |
DOCKER_COMPOSE_UP_CMD: "docker compose up --abort-on-container-exit" | |
RELEASES: | | |
latest | |
v3.1.2 | |
v3.2.0 | |
v3.3.0 | |
v3.4.0 | |
BRANCHES: | | |
trunk | |
jobs: | |
# Test suite 1 | |
# Main tests of local and trunk | |
e2e_test: | |
# Don't run on PRs from a fork or Dependabot as the secrets aren't available | |
if: ${{ github.event.pull_request.head.repo.fork == false && github.actor != 'dependabot[bot]'}} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
np: [local, trunk] | |
npd: [local, trunk] | |
exclude: | |
# Don't run these against themselves, pointless to test | |
- np: trunk | |
npd: trunk | |
steps: | |
- name: Show Matrix Values | |
run: | | |
echo "job index: ${{ strategy.job-index }}" | |
echo "np: ${{ matrix.np }}" | |
echo "npd: ${{ matrix.npd }}" | |
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 | |
- name: Setup Devicename | |
# First two guarantee a unique # per workflow call | |
# Last two guarantee a unique # per job per strategy in matrix | |
run: | | |
echo "DEVICENAME=${{ github.run_id }}${{ github.run_attempt }}1${{ strategy.job-index }}" >> $GITHUB_ENV | |
- name: Setup NP/NPD key env | |
run: | | |
SSHNP_ATKEYS="$(tr '[:lower:]' '[:upper:]' <<< '${{ env.SSHNP_ATSIGN }}')" | |
echo "SSHNP_ATKEYS=ATKEYS_${SSHNP_ATKEYS:1}" >> $GITHUB_ENV | |
SSHNPD_ATKEYS="$(tr '[:lower:]' '[:upper:]' <<< '${{ env.SSHNPD_ATSIGN }}')" | |
echo "SSHNPD_ATKEYS=ATKEYS_${SSHNPD_ATKEYS:1}" >> $GITHUB_ENV | |
- name: Setup NP/NPD keys | |
working-directory: tests/end2end_tests/contexts | |
run: | | |
echo "${{ secrets[env.SSHNP_ATKEYS] }}" > sshnp/.atsign/keys/${{ env.SSHNP_ATSIGN }}_key.atKeys | |
echo "${{ secrets[env.SSHNPD_ATKEYS] }}" > sshnpd/.atsign/keys/${{ env.SSHNPD_ATSIGN }}_key.atKeys | |
- name: Set up entrypoints | |
uses: ./.github/composite/setup_entrypoints | |
with: | |
sshnp: ${{ matrix.np }} | |
sshnp_atsign: ${{ env.SSHNP_ATSIGN }} | |
sshnpd: ${{ matrix.npd }} | |
sshnpd_atsign: ${{ env.SSHNPD_ATSIGN }} | |
sshrvd_atsign: ${{ env[env.PROD_RVD_ATSIGN] }} | |
devicename: ${{ env.DEVICENAME }} | |
- name: Ensure entrypoints exist | |
working-directory: tests/end2end_tests/contexts | |
run: | | |
cat sshnp/entrypoint.sh | |
cat sshnpd/entrypoint.sh | |
cat sshrvd/entrypoint.sh | |
- name: Create docker-compose.yaml | |
working-directory: tests/end2end_tests/tests | |
run: | | |
cat docker-compose-base.yaml > docker-compose.yaml | |
- name: Add runtime-branch image to docker-compose.yaml | |
working-directory: tests/end2end_tests/tests | |
if: ${{ contains(env.BRANCHES, matrix.np) || contains(env.BRANCHES, matrix.npd) }} | |
run: | | |
# Add the base service | |
cat service-image-runtime-branch.yaml >> docker-compose.yaml | |
# Add the branch name and runtime | |
if [ "${{contains(env.BRANCHES, matrix.np)}}" = true ]; then | |
echo ' - branch=${{ matrix.np }}' >> docker-compose.yaml | |
echo ' image: atsigncompany/sshnp-e2e-runtime:${{ matrix.np }}' >> docker-compose.yaml | |
elif [ "${{contains(env.BRANCHES, matrix.npd)}}" = true ]; then | |
echo ' - branch=${{ matrix.npd }}' >> docker-compose.yaml | |
echo ' image: atsigncompany/sshnp-e2e-runtime:${{ matrix.npd }}' >> docker-compose.yaml | |
fi | |
- name: Add container-sshnp to docker-compose.yaml | |
working-directory: tests/end2end_tests/tests | |
run: | | |
# Add the base service | |
cat service-container-sshnp.yaml >> docker-compose.yaml | |
# Add the runtime | |
echo ' image: atsigncompany/sshnp-e2e-runtime:${{ matrix.np }}' >> docker-compose.yaml | |
# Add the dependencies | |
echo ' depends_on:' >> docker-compose.yaml | |
echo ' container-sshnpd:' >> docker-compose.yaml | |
echo ' condition: service_healthy' >> docker-compose.yaml | |
if [ "${{contains(env.BRANCHES, matrix.np)}}" = true ]; then | |
echo ' image-runtime-branch:' >> docker-compose.yaml | |
else | |
echo ' image-runtime-local:' >> docker-compose.yaml | |
fi | |
echo ' condition: service_started' >> docker-compose.yaml | |
- name: Add container-sshnpd to docker-compose.yaml | |
working-directory: tests/end2end_tests/tests | |
run: | | |
# Add the base service | |
cat service-container-sshnpd.yaml >> docker-compose.yaml | |
# Add the runtime | |
echo ' image: atsigncompany/sshnp-e2e-runtime:${{ matrix.npd }}' >> docker-compose.yaml | |
# Add the dependencies | |
echo ' depends_on:' >> docker-compose.yaml | |
if [ "${{contains(env.BRANCHES, matrix.npd)}}" = true ]; then | |
echo ' - image-runtime-branch' >> docker-compose.yaml | |
else | |
echo ' - image-runtime-local' >> docker-compose.yaml | |
fi | |
- name: docker-compose.yaml | |
if: always() | |
working-directory: tests/end2end_tests/tests | |
run: | | |
cat docker-compose.yaml | |
- name: Build | |
working-directory: tests/end2end_tests/tests | |
run: | | |
docker compose build | |
- name: Test | |
working-directory: tests/end2end_tests/tests | |
run: | | |
${{ env.DOCKER_COMPOSE_UP_CMD }} | |
- name: Logs | |
if: always() | |
working-directory: tests/end2end_tests/tests | |
run: | | |
docker compose ps -a | |
docker compose logs --timestamps | |
- name: Found "Test Passed" in Logs | |
if: always() | |
working-directory: tests/end2end_tests/tests | |
run: | | |
docker compose logs --timestamps | grep -q "Test Passed$" | |
- name: Tear down | |
# Always tear down outside of the act environment | |
# but don't tear down on failure in the act environment | |
if: ${{ !env.ACT }} || success() | |
working-directory: tests/end2end_tests/tests | |
run: | | |
docker compose down | |
# Test suite 2 | |
# Installer tests (local vs installer) | |
e2e_installer_test: | |
# Don't run on forks (cause no secrets), don't run if dependebot (cause no secrets) | |
if: ${{ github.event.pull_request.head.repo.fork == false && github.actor != 'dependabot[bot]'}} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
np: [local, installer] | |
npd: [local, installer] | |
exclude: | |
# Don't run these against themselves, pointless to test | |
- np: local | |
npd: local | |
steps: | |
- name: Show Matrix Values | |
run: | | |
echo "job index: ${{ strategy.job-index }}" | |
echo "np: ${{ matrix.np }}" | |
echo "npd: ${{ matrix.npd }}" | |
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 | |
- name: Setup Devicename | |
# First two guarantee a unique # per workflow call | |
# Last two guarantee a unique # per job per strategy in matrix | |
run: | | |
echo "DEVICENAME=${{ github.run_id }}${{ github.run_attempt }}2${{ strategy.job-index }}" >> $GITHUB_ENV | |
- name: Setup NP/NPD key env | |
run: | | |
SSHNP_ATKEYS="$(tr '[:lower:]' '[:upper:]' <<< '${{ env.SSHNP_ATSIGN }}')" | |
echo "SSHNP_ATKEYS=ATKEYS_${SSHNP_ATKEYS:1}" >> $GITHUB_ENV | |
SSHNPD_ATKEYS="$(tr '[:lower:]' '[:upper:]' <<< '${{ env.SSHNPD_ATSIGN }}')" | |
echo "SSHNPD_ATKEYS=ATKEYS_${SSHNPD_ATKEYS:1}" >> $GITHUB_ENV | |
- name: Setup NP/NPD keys | |
working-directory: tests/end2end_tests/contexts | |
run: | | |
echo "${{ secrets[env.SSHNP_ATKEYS] }}" > sshnp/.atsign/keys/${{ env.SSHNP_ATSIGN }}_key.atKeys | |
echo "${{ secrets[env.SSHNPD_ATKEYS] }}" > sshnpd/.atsign/keys/${{ env.SSHNPD_ATSIGN }}_key.atKeys | |
- name: Set up entrypoints | |
uses: ./.github/composite/setup_entrypoints | |
with: | |
sshnp: ${{ matrix.np }} | |
sshnp_atsign: ${{ env.SSHNP_ATSIGN }} | |
sshnpd: ${{ matrix.npd }} | |
sshnpd_atsign: ${{ env.SSHNPD_ATSIGN }} | |
sshrvd_atsign: ${{ env[env.PROD_RVD_ATSIGN] }} | |
devicename: ${{ env.DEVICENAME }} | |
- name: Ensure entrypoints exist | |
working-directory: tests/end2end_tests/contexts | |
run: | | |
cat sshnp/entrypoint.sh | |
cat sshnpd/entrypoint.sh | |
cat sshrvd/entrypoint.sh | |
- name: Create docker-compose.yaml | |
working-directory: tests/end2end_tests/tests | |
run: | | |
cat docker-compose-base.yaml > docker-compose.yaml | |
- name: Add runtime-sshnp-installer image to docker-compose.yaml | |
working-directory: tests/end2end_tests/tests | |
if: ${{ matrix.np == 'installer' }} | |
run: | | |
cat service-image-runtime-sshnp-installer.yaml >> docker-compose.yaml | |
echo ' - client_atsign="${{ env.SSHNP_ATSIGN }}"' >> docker-compose.yaml | |
echo ' - device_atsign="${{ env.SSHNPD_ATSIGN }}"' >> docker-compose.yaml | |
echo ' - host_atsign="${{ env[env.PROD_RVD_ATSIGN] }}"' >> docker-compose.yaml | |
echo ' image: atsigncompany/sshnp-e2e-runtime:sshnp-installer' >> docker-compose.yaml | |
- name: Add runtime-sshnpd-installer image to docker-compose.yaml | |
working-directory: tests/end2end_tests/tests | |
if: ${{ matrix.npd == 'installer' }} | |
run: | | |
cat service-image-runtime-sshnpd-installer.yaml >> docker-compose.yaml | |
echo ' - client_atsign="${{ env.SSHNP_ATSIGN }}"' >> docker-compose.yaml | |
echo ' - device_atsign="${{ env.SSHNPD_ATSIGN }}"' >> docker-compose.yaml | |
echo ' - device_name=${{ env.DEVICENAME }}' >> docker-compose.yaml | |
echo ' image: atsigncompany/sshnp-e2e-runtime:sshnpd-installer' >> docker-compose.yaml | |
- name: Add container-sshnp to docker-compose.yaml | |
working-directory: tests/end2end_tests/tests | |
run: | | |
# Add the base service | |
cat service-container-sshnp.yaml >> docker-compose.yaml | |
# Add the runtime | |
if [ "${{ matrix.np }}" = 'installer' ]; then | |
echo ' image: atsigncompany/sshnp-e2e-runtime:sshnp-installer' >> docker-compose.yaml | |
else | |
echo ' image: atsigncompany/sshnp-e2e-runtime:${{ matrix.np }}' >> docker-compose.yaml | |
fi | |
# Add the dependencies | |
echo ' depends_on:' >> docker-compose.yaml | |
echo ' container-sshnpd:' >> docker-compose.yaml | |
echo ' condition: service_healthy' >> docker-compose.yaml | |
if [ "${{ matrix.np }}" = 'installer' ]; then | |
echo ' image-runtime-sshnp-installer:' >> docker-compose.yaml | |
else | |
echo ' image-runtime-local:' >> docker-compose.yaml | |
fi | |
echo ' condition: service_started' >> docker-compose.yaml | |
- name: Add container-sshnpd to docker-compose.yaml | |
working-directory: tests/end2end_tests/tests | |
run: | | |
# Add the base service | |
cat service-container-sshnpd.yaml >> docker-compose.yaml | |
# Add the runtime | |
if [ "${{ matrix.npd }}" = 'installer' ]; then | |
echo ' image: atsigncompany/sshnp-e2e-runtime:sshnpd-installer' >> docker-compose.yaml | |
else | |
echo ' image: atsigncompany/sshnp-e2e-runtime:${{ matrix.npd }}' >> docker-compose.yaml | |
fi | |
# Add the dependencies | |
echo ' depends_on:' >> docker-compose.yaml | |
if [ "${{ matrix.npd }}" = 'installer' ]; then | |
echo ' - image-runtime-sshnpd-installer' >> docker-compose.yaml | |
else | |
echo ' - image-runtime-local' >> docker-compose.yaml | |
fi | |
- name: docker-compose.yaml | |
if: always() | |
working-directory: tests/end2end_tests/tests | |
run: | | |
cat docker-compose.yaml | |
- name: Build | |
working-directory: tests/end2end_tests/tests | |
run: | | |
docker compose build | |
- name: Test | |
working-directory: tests/end2end_tests/tests | |
run: | | |
${{ env.DOCKER_COMPOSE_UP_CMD }} | |
- name: Logs | |
if: always() | |
working-directory: tests/end2end_tests/tests | |
run: | | |
docker compose ps -a | |
docker compose logs --timestamps | |
- name: Found "Test Passed" in Logs | |
if: always() | |
working-directory: tests/end2end_tests/tests | |
run: | | |
docker compose logs --timestamps | grep -q "Test Passed$" | |
- name: Tear down | |
# Always tear down outside of the act environment | |
# but don't tear down on failure in the act environment | |
if: ${{ !env.ACT }} || success() | |
working-directory: tests/end2end_tests/tests | |
run: | | |
docker compose down | |
# Test suite 3 | |
# Backward compatibility tests | |
e2e_release_test: | |
# Don't run on push and on pull, meant to be ran manually (workflow dispatch) | |
if: ${{ github.event_name != 'push' && github.event_name != 'pull_request' }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- np: local | |
npd: latest | |
- np: latest | |
npd: local | |
- np: local | |
npd: v3.3.0 | |
- np: v3.3.0 | |
npd: local | |
# These two are sync based, and is more likely to fail due to | |
# timing issues from automating which need to be addressed | |
- np: local | |
npd: v3.2.0 | |
- np: v3.2.0 | |
npd: local | |
steps: | |
- name: Show Matrix Values | |
run: | | |
echo "job index: ${{ strategy.job-index }}" | |
echo "np: ${{ matrix.np }}" | |
echo "npd: ${{ matrix.npd }}" | |
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 | |
- name: Setup Devicename | |
# First two guarantee a unique # per workflow call | |
# Last two guarantee a unique # per job per strategy in matrix | |
run: | | |
echo "DEVICENAME=${{ github.run_id }}${{ github.run_attempt }}3${{ strategy.job-index }}" >> $GITHUB_ENV | |
- name: Setup NP/NPD key env | |
run: | | |
SSHNP_ATKEYS="$(tr '[:lower:]' '[:upper:]' <<< '${{ env.SSHNP_ATSIGN }}')" | |
echo "SSHNP_ATKEYS=ATKEYS_${SSHNP_ATKEYS:1}" >> $GITHUB_ENV | |
SSHNPD_ATKEYS="$(tr '[:lower:]' '[:upper:]' <<< '${{ env.SSHNPD_ATSIGN }}')" | |
echo "SSHNPD_ATKEYS=ATKEYS_${SSHNPD_ATKEYS:1}" >> $GITHUB_ENV | |
- name: Setup NP/NPD keys | |
working-directory: tests/end2end_tests/contexts | |
run: | | |
echo "${{ secrets[env.SSHNP_ATKEYS] }}" > sshnp/.atsign/keys/${{ env.SSHNP_ATSIGN }}_key.atKeys | |
echo "${{ secrets[env.SSHNPD_ATKEYS] }}" > sshnpd/.atsign/keys/${{ env.SSHNPD_ATSIGN }}_key.atKeys | |
- name: Set up entrypoints | |
uses: ./.github/composite/setup_entrypoints | |
with: | |
sshnp: ${{ matrix.np }} | |
sshnp_atsign: ${{ env.SSHNP_ATSIGN }} | |
sshnpd: ${{ matrix.npd }} | |
sshnpd_atsign: ${{ env.SSHNPD_ATSIGN }} | |
sshrvd_atsign: ${{ env[env.PROD_RVD_ATSIGN] }} | |
devicename: ${{ env.DEVICENAME }} | |
- name: Ensure entrypoints exist | |
working-directory: tests/end2end_tests/contexts | |
run: | | |
cat sshnp/entrypoint.sh | |
cat sshnpd/entrypoint.sh | |
cat sshrvd/entrypoint.sh | |
- name: Create docker-compose.yaml | |
working-directory: tests/end2end_tests/tests | |
run: | | |
cat docker-compose-base.yaml > docker-compose.yaml | |
- name: Add runtime-release image to docker-compose.yaml | |
working-directory: tests/end2end_tests/tests | |
if: ${{ contains(env.RELEASES, matrix.np) || contains(env.RELEASES, matrix.npd) }} | |
run: | | |
cat service-image-runtime-release.yaml >> docker-compose.yaml | |
if [ "${{contains(env.RELEASES, matrix.np)}}" = true ]; then | |
echo ' - release=${{ matrix.np }}' >> docker-compose.yaml | |
echo ' image: atsigncompany/sshnp-e2e-runtime:${{ matrix.np }}' >> docker-compose.yaml | |
elif [ "${{contains(env.RELEASES, matrix.npd)}}" = true ]; then | |
echo ' - release=${{ matrix.npd }}' >> docker-compose.yaml | |
echo ' image: atsigncompany/sshnp-e2e-runtime:${{ matrix.npd }}' >> docker-compose.yaml | |
fi | |
- name: Add container-sshnp to docker-compose.yaml | |
working-directory: tests/end2end_tests/tests | |
run: | | |
# Add the base service | |
cat service-container-sshnp.yaml >> docker-compose.yaml | |
# Add the runtime | |
echo ' image: atsigncompany/sshnp-e2e-runtime:${{ matrix.np }}' >> docker-compose.yaml | |
# Add the dependencies | |
echo ' depends_on:' >> docker-compose.yaml | |
echo ' container-sshnpd:' >> docker-compose.yaml | |
echo ' condition: service_healthy' >> docker-compose.yaml | |
if [ "${{contains(env.RELEASES, matrix.np)}}" = true ]; then | |
echo ' image-runtime-release:' >> docker-compose.yaml | |
else | |
echo ' image-runtime-local:' >> docker-compose.yaml | |
fi | |
echo ' condition: service_started' >> docker-compose.yaml | |
- name: Add container-sshnpd to docker-compose.yaml | |
working-directory: tests/end2end_tests/tests | |
run: | | |
# Add the base service | |
cat service-container-sshnpd.yaml >> docker-compose.yaml | |
# Add the runtime | |
echo ' image: atsigncompany/sshnp-e2e-runtime:${{ matrix.npd }}' >> docker-compose.yaml | |
# Add the dependencies | |
echo ' depends_on:' >> docker-compose.yaml | |
if [ "${{contains(env.RELEASES, matrix.npd)}}" = true ]; then | |
echo ' - image-runtime-release' >> docker-compose.yaml | |
else | |
echo ' - image-runtime-local' >> docker-compose.yaml | |
fi | |
- name: docker-compose.yaml | |
if: always() | |
working-directory: tests/end2end_tests/tests | |
run: | | |
cat docker-compose.yaml | |
- name: Build | |
working-directory: tests/end2end_tests/tests | |
run: | | |
docker compose build | |
- name: Test | |
working-directory: tests/end2end_tests/tests | |
run: | | |
${{ env.DOCKER_COMPOSE_UP_CMD }} | |
- name: Logs | |
if: always() | |
working-directory: tests/end2end_tests/tests | |
run: | | |
docker compose ps -a | |
docker compose logs --timestamps | |
- name: Found "Test Passed" in Logs | |
if: always() | |
working-directory: tests/end2end_tests/tests | |
run: | | |
docker compose logs --timestamps | grep -q "Test Passed$" | |
- name: Tear down | |
# Always tear down outside of the act environment | |
# but don't tear down on failure in the act environment | |
if: ${{ !env.ACT }} || success() | |
working-directory: tests/end2end_tests/tests | |
run: | | |
docker compose down | |
# Test suite 4 | |
# Use alternative port on local | |
e2e_alternate_port_test: | |
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 | |
- name: Setup Devicename | |
# First two guarantee a unique # per workflow call | |
# Last two guarantee a unique # per job per strategy in matrix | |
run: | | |
echo "DEVICENAME=${{ github.run_id }}${{ github.run_attempt }}4${{ strategy.job-index }}" >> $GITHUB_ENV | |
- name: Setup NP/NPD key env | |
run: | | |
SSHNP_ATKEYS="$(tr '[:lower:]' '[:upper:]' <<< '${{ env.SSHNP_ATSIGN }}')" | |
echo "SSHNP_ATKEYS=ATKEYS_${SSHNP_ATKEYS:1}" >> $GITHUB_ENV | |
SSHNPD_ATKEYS="$(tr '[:lower:]' '[:upper:]' <<< '${{ env.SSHNPD_ATSIGN }}')" | |
echo "SSHNPD_ATKEYS=ATKEYS_${SSHNPD_ATKEYS:1}" >> $GITHUB_ENV | |
- name: Setup NP/NPD keys | |
working-directory: tests/end2end_tests/contexts | |
run: | | |
echo "${{ secrets[env.SSHNP_ATKEYS] }}" > sshnp/.atsign/keys/${{ env.SSHNP_ATSIGN }}_key.atKeys | |
echo "${{ secrets[env.SSHNPD_ATKEYS] }}" > sshnpd/.atsign/keys/${{ env.SSHNPD_ATSIGN }}_key.atKeys | |
- name: Set up entrypoints | |
working-directory: tests/end2end_tests/contexts/_init_ | |
run: | | |
./setup-sshnp-entrypoint.sh ${{ env.DEVICENAME }} ${{ env.SSHNP_ATSIGN }} ${{ env.SSHNPD_ATSIGN }} ${{ env[env.PROD_RVD_ATSIGN] }} alternate_port_test/sshnp_entrypoint.sh | |
./setup-sshnpd-entrypoint.sh ${{ env.DEVICENAME }} ${{ env.SSHNP_ATSIGN }} ${{ env.SSHNPD_ATSIGN }} alternate_port_test/sshnpd_entrypoint.sh | |
- name: Ensure entrypoints exist | |
working-directory: tests/end2end_tests/contexts | |
run: | | |
cat sshnp/entrypoint.sh | |
cat sshnpd/entrypoint.sh | |
- name: Build | |
working-directory: tests/end2end_tests/tests/alternate_port_test | |
run: docker compose build | |
- name: Test | |
working-directory: tests/end2end_tests/tests/alternate_port_test | |
run: | | |
${{ env.DOCKER_COMPOSE_UP_CMD }} | |
- name: Logs | |
if: always() | |
continue-on-error: true # failing this step does not fail the entire job | |
working-directory: tests/end2end_tests/tests/alternate_port_test | |
run: | | |
docker compose ps -a | |
docker compose logs --timestamps | |
- name: Found "Test Passed" in Logs | |
if: always() | |
continue-on-error: true # failing this step does not fail the entire job | |
working-directory: tests/end2end_tests/tests/alternate_port_test | |
run: | | |
docker compose logs --timestamps | grep -q "Test Passed$" | |
- name: Tear down | |
# Always tear down outside of the act environment | |
# but don't tear down on failure in the act environment | |
if: ${{ !env.ACT }} || success() | |
continue-on-error: true # failing this step does not fail the entire job | |
working-directory: tests/end2end_tests/tests/alternate_port_test | |
run: | | |
docker compose down |