diff --git a/.github/workflows/project.yaml b/.github/workflows/project.yaml index 4dcca238..1a200001 100644 --- a/.github/workflows/project.yaml +++ b/.github/workflows/project.yaml @@ -1,78 +1,67 @@ name: Upsun Demo CI - -on: - pull_request: - branches: - - main - +'on': + pull_request: + branches: + - main env: - UPSUN_CLI_NO_INTERACTION: 1 - UPSUN_CLI_TOKEN: ${{secrets.DEVREL_USER_UPSUN_TOKEN}} - UPSUN_HOST_FILE: "~/.ssh/known_hosts" - UPSUN_HOST_REGION: "ca-1" - UPSUN_HOST_SUFFIX: "platform.sh" - - GIT_USER_EMAIL: "devrel@internal.platform.sh" - GIT_USER_NAME: "DevRel Team Bot" - - TEST_PATH: "utils/tests" - - ORG_NAME: "demo-test-org" + UPSUN_CLI_NO_INTERACTION: 1 + UPSUN_CLI_TOKEN: '${{secrets.DEVREL_USER_UPSUN_TOKEN}}' + UPSUN_HOST_FILE: ~/.ssh/known_hosts + UPSUN_HOST_REGION: ca-1 + UPSUN_HOST_SUFFIX: platform.sh + GIT_USER_EMAIL: devrel@internal.platform.sh + GIT_USER_NAME: DevRel Team Bot - TEST_ORG_NAME: demo-test-org - TEST_PROJECT_TITLE: "Demo Test Run (pr-${{ github.ref_name }})" - - TEST_PROJECT_REGION: "ca-1" - TEST_PROJECT_REGION_SUFFIX: "platform.sh" + TEST_PATH: utils/tests - TEST_PROJECT_REPO: "platformsh/demo-project" - TEST_PROJECT_LOCALDIR: "upsun-demo" - - TEST_PROJECT_DEFAULT_BRANCH: ${{ github.event.pull_request.head.ref }} - TEST_PROJECT_STAGING_ENV: ${{ github.event.pull_request.head.ref }}-staging + ORG_NAME: demo-test-org - TEST_PROJECT_BACKEND_PATH: "api/v1/environment" + TEST_PROJECT_TITLE: 'Demo Test Run (pr-${{ github.ref_name }})' + TEST_PROJECT_REGION: ca-1 + TEST_PROJECT_REGION_SUFFIX: platform.sh + TEST_PROJECT_REPO: platformsh/demo-project + TEST_PROJECT_LOCALDIR: upsun-demo + TEST_PROJECT_DEFAULT_BRANCH: '${{ github.event.pull_request.head.ref }}' + TEST_PROJECT_STAGING_ENV: '${{ github.event.pull_request.head.ref }}-staging' + TEST_PROJECT_BACKEND_PATH: api/v1/environment jobs: + demo-runthrough: + runs-on: ubuntu-latest + steps: + ################################################################################################ + # A. Setup Upsun CLI. + - name: "[setup_cli] 1. Set up Homebrew." + id: set-up-homebrew + uses: Homebrew/actions/setup-homebrew@master + - name: "[setup_cli] 2. Install Upsun CLI." + run: | + echo "::notice::Installing Upsun CLI via HomeBrew." + brew install platformsh/tap/upsun-cli + - name: "[setup_cli] 3. Test: The Upsun CLI should be installed and executable." + run: | + echo "::notice::Verifying CLI is installed correctly." + ./$TEST_PATH/command_installed.sh upsun + + ################################################################################################ + # B. Setup authenticated Upsun CLI user. + - name: "[setup_cli_auth] 1. Authenticate Upsun CLI to allow push from workflow." + run: | + echo "::notice::Generating SSH certificate for Upsun CLI." + upsun ssh-cert:load --new -y + touch $UPSUN_HOST_FILE + chmod 644 $UPSUN_HOST_FILE + ssh-keyscan ssh.$UPSUN_HOST_REGION.$UPSUN_HOST_SUFFIX -v >> $UPSUN_HOST_FILE + ssh-keyscan git.$UPSUN_HOST_REGION.$UPSUN_HOST_SUFFIX -v >> $UPSUN_HOST_FILE + - name: "[setup_cli_auth] 2. Test: an authenticated CLI can retrieve organization info." + run: | + echo "::notice::Verifying CLI is authenticated correctly." + RESULT=$(upsun org:info -o $ORG_NAME name) + ./$TEST_PATH/compare_strings $RESULT $ORG_NAME "Authenticate Upsun CLI user" + upsun auth:info username - 'demo-runthrough': - - runs-on: ubuntu-latest - - steps: - - ################################################################################################ - # A. Setup Upsun CLI. - - name: "[setup_cli] 1. Set up Homebrew" - id: set-up-homebrew - uses: Homebrew/actions/setup-homebrew@master - - name: "[setup_cli] 2. Install Upsun CLI" - run: | - echo "::notice::Installing Upsun CLI via HomeBrew." - brew install platformsh/tap/upsun-cli - - name: "[setup_cli] 3. Test: The Upsun CLI should be installed and executable." - run: | - echo "::notice::Verifying CLI is installed correctly." - ./$TEST_PATH/command_installed.sh upsun - - ################################################################################################ - # B. Setup authenticated Upsun CLI user. - - name: "[setup_cli_auth] 1. Authenticate Upsun CLI to allow push from workflow" - run: | - echo "::notice::Generating SSH certificate for Upsun CLI." - upsun ssh-cert:load --new -y - touch $UPSUN_HOST_FILE - chmod 644 $UPSUN_HOST_FILE - ssh-keyscan ssh.$UPSUN_HOST_REGION.$UPSUN_HOST_SUFFIX -v >> $UPSUN_HOST_FILE - ssh-keyscan git.$UPSUN_HOST_REGION.$UPSUN_HOST_SUFFIX -v >> $UPSUN_HOST_FILE - - name: "[setup_cli_auth] 2. Test: an authenticated CLI can retrieve organization info." - run: | - echo "::notice::Verifying CLI is authenticated correctly." - RESULT=$(upsun org:info -o $ORG_NAME name) - ./$TEST_PATH/compare_strings $RESULT $ORG_NAME "Authenticate Upsun CLI user" - upsun auth:info username # ################################################################################################ # # A. Setting up tools and authentication to test project/organization.