Skip to content

August Release

August Release #1316

Workflow file for this run

# workflow on pull request to main
name: pull-request-validation
on:
workflow_dispatch: # allow for manual workflow triggering as needed
pull_request:
branches: [ main ]
jobs:
build-and-test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
fail-fast: false
env:
RUNNER_DEBUG: 1
WF_USERNAME: [email protected]
WF_USER_ROLE: "Bot Author"
WF_USER_AAD_OBJECT_ID: "85fd1857-ddef-46f6-acf4-22a0d1df2cda"
WF_APP_USER_ID: "82e66a08-8bf9-42bf-883a-7e2d17c7cede"
steps:
- uses: actions/checkout@v3
with:
lfs: true
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: 16.x
registry-url: https://npm.pkg.github.com
- name: Install npm@9
run: npm i -g npm@9
- name: Build and test
run: |
npm config set //npm.pkg.github.com/:_authToken=${{ secrets.GPR_ACCESS_TOKEN }}
npm ci
npm run ci
env:
AZ_DevOps_Read_PAT: ${{ secrets.AZ_DevOps_Read_PAT }}
- name: Install PAC
uses: ./actions-install
id: actions-install
- name: Test create-environment action with username/password
uses: ./create-environment
id: create-environment
env:
PP_ENV_NAME: ${{ format('pp-actions-{0}-pr-{1}', runner.os, github.event.number) }}
with:
user-name: ${{ env.WF_USERNAME }}
password-secret: ${{ secrets.PASSWORD_PPDEVTOOLS }}
name: ${{ env.PP_ENV_NAME }}
type: Sandbox
region: unitedstates
domain: ${{ env.PP_ENV_NAME }}
- name: Test who-am-i action
uses: ./who-am-i
id: who-am-i
with:
environment-url: ${{ steps.create-environment.outputs.environment-url }}
user-name: ${{ env.WF_USERNAME }}
password-secret: ${{ secrets.PASSWORD_PPDEVTOOLS }}
- name: Show who-am-i output
run: |
echo create-environment.outputs.environment-id: ${{ steps.create-environment.outputs.environment-id }}
echo create-environment.outputs.environment-url: ${{ steps.create-environment.outputs.environment-url }}
echo who-am-i.outputs.environment-id: ${{ steps.who-am-i.outputs.environment-id }}
echo who-am-i.outputs.environment-url: ${{ steps.who-am-i.outputs.environment-url }}
- name: Test who-am-i output
if: ${{ steps.create-environment.outputs.environment-id != steps.who-am-i.outputs.environment-id }}
run: |
exit 1
- name: Test assign-user action with role assignment
uses: ./assign-user
with:
user-name: ${{ env.WF_USERNAME }}
password-secret: ${{ secrets.PASSWORD_PPDEVTOOLS }}
environment: ${{ steps.create-environment.outputs.environment-url }}
user: ${{ env.WF_USER_AAD_OBJECT_ID}}
role: ${{ env.WF_USER_ROLE}}
- name: Test assign-user action with application user
uses: ./assign-user
with:
user-name: ${{ env.WF_USERNAME }}
password-secret: ${{ secrets.PASSWORD_PPDEVTOOLS }}
environment: ${{ steps.create-environment.outputs.environment-url }}
user: ${{ env.WF_APP_USER_ID}}
role: ${{ env.WF_USER_ROLE}}
application-user: true
- name: Test assign-group action
uses: ./assign-group
with:
user-name: ${{ env.WF_USERNAME }}
password-secret: ${{ secrets.PASSWORD_PPDEVTOOLS }}
environment: ${{ steps.create-environment.outputs.environment-url }}
group: 'fef01b9b-da30-4cb5-b6b9-ff34c5d2ca2e'
group-name: 'Test Group'
role: 'System Customizer'
team-type: 'AadSecurityGroup'
membership-type: 'Members'
- name: Test unpack-solution action
uses: ./unpack-solution
with:
solution-folder: 'out/CI/emptySolution/src'
solution-file: 'src/test/data/TrivialCanvasSolution.zip'
solution-type: 'Unmanaged'
overwrite-files: true
locale-template: 'en-US'
localize: true
process-canvas-apps: true
- name: Test pack-solution action
uses: ./pack-solution
with:
solution-folder: 'src/test/data/emptySolution'
solution-file: 'out/CI/emptySolution.zip'
solution-type: 'Unmanaged'
localize: true
process-canvas-apps: true
- name: Test import-solution action with username/password
uses: ./import-solution
with:
environment-url: ${{ steps.create-environment.outputs.environment-url }}
user-name: ${{ env.WF_USERNAME }}
password-secret: ${{ secrets.PASSWORD_PPDEVTOOLS }}
solution-file: 'src/test/data/emptySolution_0_1_0_0.zip'
force-overwrite: true
run-asynchronously: true
- name: Test add-solution-component action
uses: ./add-solution-component
with:
environment-url: ${{ steps.create-environment.outputs.environment-url }}
user-name: ${{ env.WF_USERNAME }}
password-secret: ${{ secrets.PASSWORD_PPDEVTOOLS }}
solution-name: emptySolution
component: account
component-type: 1
add-required-components: true
- name: Test delete-environment action with username/password
if: always() # Clean up created environments even on failed run
uses: ./delete-environment
with:
environment-url: ${{ steps.create-environment.outputs.environment-url }}
user-name: ${{ env.WF_USERNAME }}
password-secret: ${{ secrets.PASSWORD_PPDEVTOOLS }}
- name: Upload pac CLI logs
if: always()
uses: actions/upload-artifact@v3
with:
name: pac-cli-log ${{ matrix.os }}
path: ./dist/pac*/tools/logs/pac-log.txt
- name: Upload test logs
if: always()
uses: actions/upload-artifact@v3
with:
name: Test Logs ${{ matrix.os }}
path: ./out/logs/*-tests.log