VCST-2048: Use ClaimsPrincipalExtensions GetUserId #81
Workflow file for this run
This file contains hidden or 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
| # v3.800.9 | |
| # https://virtocommerce.atlassian.net/browse/VCST-1260 | |
| name: Module CI | |
| on: | |
| workflow_dispatch: | |
| push: | |
| paths-ignore: | |
| - '.github/**' | |
| - 'docs/**' | |
| - 'build/**' | |
| - 'README.md' | |
| - 'LICENSE' | |
| - '**/argoDeploy.json' | |
| - '**/cloudDeploy.json' | |
| - samples/** | |
| branches: | |
| [master, main, dev] | |
| pull_request: | |
| branches: | |
| [master, main, dev] | |
| paths-ignore: | |
| - 'docs/**' | |
| - 'build/**' | |
| - 'README.md' | |
| - 'LICENSE' | |
| - '**/argoDeploy.json' | |
| - '**/cloudDeploy.json' | |
| - samples/** | |
| jobs: | |
| ci: | |
| if: ${{ github.actor != 'dependabot[bot]' && | |
| (github.event.pull_request.head.repo.full_name == github.repository || | |
| github.event.pull_request.head.repo.full_name == '') }} # Check that PR not from forked repo and not from Dependabot | |
| runs-on: ubuntu-20.04 | |
| env: | |
| CLOUD_INSTANCE_BASE_URL: ${{secrets.CLOUD_INSTANCE_BASE_URL}} | |
| CLIENT_ID: ${{secrets.CLIENT_ID}} | |
| CLIENT_SECRET: ${{secrets.CLIENT_SECRET}} | |
| SONAR_TOKEN: ${{secrets.SONAR_TOKEN}} | |
| GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} | |
| NUGET_KEY: ${{ secrets.NUGET_KEY }} | |
| BLOB_SAS: ${{ secrets.BLOB_TOKEN }} | |
| VERSION_SUFFIX: '' | |
| BUILD_STATE: 'failed' | |
| RELEASE_STATUS: 'false' | |
| outputs: | |
| artifactUrl: ${{ steps.artifactUrl.outputs.download_url }} | |
| blobId: ${{ steps.blobRelease.outputs.blobId }} | |
| jira-keys: ${{ steps.jira_keys.outputs.jira-keys }} | |
| version: ${{ steps.artifact_ver.outputs.shortVersion }} | |
| moduleId: ${{ steps.artifact_ver.outputs.moduleId }} | |
| matrix: ${{ steps.deployment-matrix.outputs.matrix }} | |
| run-e2e: ${{ steps.run-e2e.outputs.result }} | |
| steps: | |
| - name: Set up Node 20 | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Set up Java 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| - name: Set RELEASE_STATUS | |
| if: ${{ (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main') && github.event_name == 'push' }} | |
| run: | | |
| echo "RELEASE_STATUS=true" >> $GITHUB_ENV | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install VirtoCommerce.GlobalTool | |
| uses: VirtoCommerce/vc-github-actions/setup-vcbuild@master | |
| - name: Install dotnet-sonarscanner | |
| run: dotnet tool install --global dotnet-sonarscanner | |
| - name: Get Changelog | |
| id: changelog | |
| uses: VirtoCommerce/vc-github-actions/changelog-generator@master | |
| - name: Get Artifact Version | |
| uses: VirtoCommerce/vc-github-actions/get-image-version@master | |
| id: artifact_ver | |
| - name: Set VERSION_SUFFIX variable | |
| run: | | |
| if [ '${{ github.event_name }}' = 'workflow_dispatch' ]; then | |
| echo "VERSION_SUFFIX=${{ steps.artifact_ver.outputs.fullSuffix }}" >> $GITHUB_ENV | |
| else | |
| echo "VERSION_SUFFIX=${{ steps.artifact_ver.outputs.suffix }}" >> $GITHUB_ENV | |
| fi; | |
| - name: Add version suffix | |
| if: ${{ github.ref != 'refs/heads/master' && github.ref != 'refs/heads/main' }} | |
| uses: VirtoCommerce/vc-github-actions/add-version-suffix@master | |
| with: | |
| versionSuffix: ${{ env.VERSION_SUFFIX }} | |
| - name: SonarCloud Begin | |
| uses: VirtoCommerce/vc-github-actions/sonar-scanner-begin@master | |
| with: | |
| repoOrg: ${{ github.repository_owner }} | |
| sonarOrg: ${{secrets.SONAR_ORG_KEY}} | |
| - name: Build | |
| run: vc-build Compile | |
| - name: Unit Tests | |
| run: vc-build Test -skip | |
| - name: SonarCloud End | |
| uses: VirtoCommerce/vc-github-actions/sonar-scanner-end@master | |
| - name: Quality Gate | |
| uses: VirtoCommerce/vc-github-actions/sonar-quality-gate@master | |
| with: | |
| login: ${{secrets.SONAR_TOKEN}} | |
| - name: Packaging | |
| run: vc-build Compress -skip Clean+Restore+Compile+Test | |
| - name: Publish Nuget | |
| if: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }} | |
| uses: VirtoCommerce/vc-github-actions/publish-nuget@master | |
| - name: Publish to Blob | |
| if: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev' || github.event_name == 'pull_request' || (github.event_name == 'workflow_dispatch' && github.ref != 'refs/heads/master') || (github.event_name == 'workflow_dispatch' && github.ref != 'refs/heads/main') }} | |
| id: blobRelease | |
| uses: VirtoCommerce/vc-github-actions/publish-blob-release@master | |
| with: | |
| blobSAS: ${{ secrets.BLOB_TOKEN }} | |
| blobUrl: ${{ vars.BLOB_URL }} | |
| - name: Add Jira link | |
| if: ${{ github.event_name == 'pull_request' }} | |
| uses: VirtoCommerce/vc-github-actions/publish-jira-link@master | |
| with: | |
| branchName: ${{ github.head_ref }} | |
| repoOrg: ${{ github.repository_owner }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Add link to PR | |
| if: ${{ github.event_name == 'pull_request' }} | |
| uses: VirtoCommerce/vc-github-actions/publish-artifact-link@master | |
| with: | |
| artifactUrl: ${{ steps.blobRelease.outputs.packageUrl }} | |
| repoOrg: ${{ github.repository_owner }} | |
| downloadComment: 'Artifact URL:' | |
| - name: Publish Github Release | |
| if: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }} | |
| id: githubRelease | |
| with: | |
| changelog: ${{ steps.changelog.outputs.changelog }} | |
| organization: ${{ github.repository_owner }} | |
| uses: VirtoCommerce/vc-github-actions/publish-github-release@master | |
| - name: Set artifactUrl value | |
| id: artifactUrl | |
| run: | | |
| if [ '${{ github.ref }}' = 'refs/heads/master' ] || [ '${{ github.ref }}' = 'refs/heads/main' ]; then | |
| echo "download_url=${{ steps.githubRelease.outputs.downloadUrl }}" >> $GITHUB_OUTPUT | |
| else | |
| echo "download_url=${{ steps.blobRelease.outputs.packageUrl }}" >> $GITHUB_OUTPUT | |
| fi; | |
| - name: Create deployment matrix | |
| if: ${{ github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }} | |
| uses: VirtoCommerce/vc-github-actions/cloud-create-deploy-matrix@master | |
| id: deployment-matrix | |
| with: | |
| deployConfigPath: '.deployment/module/cloudDeploy.json' | |
| releaseBranch: 'master' | |
| - name: Check commit message for version number | |
| id: run-e2e | |
| run: | | |
| if [[ "${{ github.event.head_commit.message }}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; | |
| then | |
| echo "result=false" >> $GITHUB_OUTPUT | |
| else | |
| echo "result=true" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Setup Git Credentials | |
| if: ${{ (github.ref == 'refs/heads/dev' && github.event_name != 'workflow_dispatch') || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }} | |
| uses: VirtoCommerce/vc-github-actions/setup-git-credentials-github@master | |
| with: | |
| githubToken: ${{ secrets.REPO_TOKEN }} | |
| - name: Publish Manifest | |
| if: ${{ (github.ref == 'refs/heads/dev' && github.event_name != 'workflow_dispatch') || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }} | |
| uses: VirtoCommerce/vc-github-actions/publish-manifest@master | |
| with: | |
| packageUrl: ${{ steps.artifactUrl.outputs.download_url }} | |
| - name: Parse Jira Keys from All Commits | |
| uses: VirtoCommerce/vc-github-actions/get-jira-keys@master | |
| if: always() | |
| id: jira_keys | |
| with: | |
| release: ${{ env.RELEASE_STATUS }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Push Build Info to Jira | |
| if: ${{ env.CLOUD_INSTANCE_BASE_URL != 0 && env.CLIENT_ID != 0 && env.CLIENT_SECRET != 0 && steps.jira_keys.outputs.jira-keys != '' && always() }} | |
| id: push_build_info_to_jira | |
| uses: VirtoCommerce/jira-upload-build-info@master | |
| with: | |
| cloud-instance-base-url: '${{ secrets.CLOUD_INSTANCE_BASE_URL }}' | |
| client-id: '${{ secrets.CLIENT_ID }}' | |
| client-secret: '${{ secrets.CLIENT_SECRET }}' | |
| pipeline-id: '${{ github.repository }} ${{ github.workflow }}' | |
| build-number: ${{ github.run_number }} | |
| build-display-name: 'Workflow: ${{ github.workflow }} (#${{ github.run_number }})' | |
| build-state: '${{ env.BUILD_STATE }}' | |
| build-url: '${{github.event.repository.url}}/actions/runs/${{github.run_id}}' | |
| update-sequence-number: '${{ github.run_id }}' | |
| last-updated: '${{github.event.head_commit.timestamp}}' | |
| issue-keys: '${{ steps.jira_keys.outputs.jira-keys }}' | |
| commit-id: '${{ github.sha }}' | |
| repo-url: '${{ github.event.repository.url }}' | |
| build-ref-url: '${{ github.event.repository.url }}/actions/runs/${{ github.run_id }}' | |
| - name: Confirm Jira Build Output | |
| if: success() | |
| run: | | |
| echo "Jira Upload Build Info response: ${{ steps.push_build_info_to_jira.outputs.response }}" | |
| module-katalon-tests: | |
| if: ${{ ((github.ref == 'refs/heads/dev') && (github.event_name == 'push') && (needs.ci.outputs.run-e2e == 'true')) || | |
| (github.event_name == 'workflow_dispatch')}} | |
| needs: 'ci' | |
| uses: VirtoCommerce/.github/.github/workflows/[email protected] | |
| with: | |
| katalonRepo: 'VirtoCommerce/vc-quality-gate-katalon' | |
| katalonRepoBranch: 'dev' | |
| testSuite: 'Test Suites/Modules/Platform_collection' | |
| installModules: 'true' | |
| installCustomModule: 'true' | |
| customModuleId: ${{ needs.ci.outputs.moduleId }} | |
| customModuleUrl: ${{ needs.ci.outputs.artifactUrl }} | |
| platformDockerTag: 'dev-linux-latest' | |
| storefrontDockerTag: 'dev-linux-latest' | |
| secrets: | |
| envPAT: ${{ secrets.REPO_TOKEN }} | |
| katalonApiKey: ${{ secrets.KATALON_API_KEY }} | |
| deploy-cloud: | |
| if: ${{ (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev') && github.event_name == 'push' }} | |
| needs: ci | |
| uses: VirtoCommerce/.github/.github/workflows/[email protected] | |
| with: | |
| releaseSource: module | |
| moduleId: ${{ needs.ci.outputs.moduleId }} | |
| moduleVer: ${{ needs.ci.outputs.version }} | |
| moduleBlob: ${{ needs.ci.outputs.blobId }} | |
| jiraKeys: ${{ needs.ci.outputs.jira-keys }} | |
| argoServer: 'argo.virtocommerce.cloud' | |
| matrix: '{"include":${{ needs.ci.outputs.matrix }}}' | |
| secrets: inherit |