ci: fix deployment #24
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
# v1.0.1.vcst | |
name: Theme CI | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
[master, dev, demo] | |
paths-ignore: | |
- '.github/**' | |
- 'docs/**' | |
- 'build/**' | |
- 'README.md' | |
- 'LICENSE' | |
- '**/cloudDeploy.json' | |
pull_request: | |
branches: | |
[master, dev, demo] | |
paths-ignore: | |
- '.github/**' | |
- 'docs/**' | |
- 'build/**' | |
- 'README.md' | |
- 'LICENSE' | |
- '**/cloudDeploy.json' | |
jobs: | |
ci: | |
runs-on: ubuntu-latest | |
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 }} | |
BLOB_SAS: ${{ secrets.BLOB_TOKEN }} | |
VERSION_SUFFIX: "" | |
BUILD_STATE: 'failed' | |
RELEASE_STATUS: 'false' | |
outputs: | |
artifactUrl: '${{ steps.artifactUrl.outputs.download_url }}' | |
jira-keys: ${{ steps.jira_keys.outputs.jira-keys }} | |
steps: | |
- name: Set RELEASE_STATUS | |
if: ${{ github.ref == 'refs/heads/master' && github.event_name == 'push' }} | |
run: | | |
echo "RELEASE_STATUS=true" >> $GITHUB_ENV | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Install Node.js 18 | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '18' | |
- name: Get Image Version | |
uses: VirtoCommerce/vc-github-actions/get-image-version@master | |
id: image | |
- name: Set release variables | |
run: | | |
echo "VERSION_SUFFIX=${{ steps.image.outputs.suffix }}" >> $GITHUB_ENV | |
- name: Set release-alpha variables | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
run: | | |
echo "VERSION_SUFFIX=${{ steps.image.outputs.fullSuffix }}" >> $GITHUB_ENV | |
- name: Set PR variables | |
if: ${{ github.event_name == 'pull_request' }} | |
run: | | |
echo "VERSION_SUFFIX=${{ steps.image.outputs.suffix }}-${{ steps.image.outputs.SHA }}" >> $GITHUB_ENV | |
- name: Get changelog | |
id: changelog | |
uses: VirtoCommerce/vc-github-actions/changelog-generator@master | |
- name: Build | |
id: build | |
uses: VirtoCommerce/vc-github-actions/build-vue-theme@master | |
with: | |
versionSuffix: ${{ env.VERSION_SUFFIX }} | |
env: | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
- name: Publish | |
if: ${{ github.ref == 'refs/heads/demo' || github.ref == 'refs/heads/dev' || github.event_name == 'pull_request' || (github.event_name == 'workflow_dispatch' && github.ref != 'refs/heads/master')}} | |
id: publish | |
uses: VirtoCommerce/vc-github-actions/publish-theme@master | |
with: | |
artifactPath: ${{ steps.build.outputs.artifactPath }} | |
artifactName: ${{ steps.build.outputs.artifactName }} | |
- name: Add link to PR | |
if: ${{ github.event_name == 'pull_request' }} | |
uses: VirtoCommerce/vc-github-actions/publish-artifact-link@master | |
with: | |
artifactUrl: ${{ steps.publish.outputs.blobUrl }} | |
- name: Create Release | |
if: ${{ github.ref == 'refs/heads/master' }} | |
id: create_release | |
uses: actions/create-release@v1 | |
with: | |
tag_name: ${{ steps.image.outputs.prefix }} | |
release_name: ${{ steps.image.outputs.prefix }} | |
draft: false | |
prerelease: false | |
body: ${{ steps.changelog.outputs.changelog }} | |
- name: Upload Release Asset | |
if: ${{ github.ref == 'refs/heads/master' }} | |
id: upload-release-asset | |
uses: actions/upload-release-asset@v1 | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ${{ steps.build.outputs.artifactPath }} | |
asset_name: ${{ steps.build.outputs.artifactName }} | |
asset_content_type: application/zip | |
- name: Set download artifactUrl | |
id: artifactUrl | |
run: | | |
if [ '${{ github.ref }}' = 'refs/heads/master' ]; then | |
echo download_url:: ${{ steps.upload-release-asset.outputs.browser_download_url }} >> $GITHUB_OUTPUT | |
else | |
echo download_url::${{ steps.publish.outputs.blobUrl }} >> $GITHUB_OUTPUT | |
fi; | |
- 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: BUILD_STATE::successful | |
if: success() | |
run: echo "BUILD_STATE=successful" >> $GITHUB_ENV | |
- 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 }}" | |
deploy-cloud: | |
if: ${{ (github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/demo' || github.ref == 'refs/heads/master') && (github.event_name == 'push' || github.event_name == 'workflow_dispatch') }} | |
needs: ci | |
uses: ./.github/workflows/deploy-cloud.yml | |
with: | |
parameterName: 'themes.B2B-store' | |
parameterValue: ${{ needs.ci.outputs.artifactUrl }} | |
environmentId: ${{ github.ref == 'refs/head/dev' && 'dev' || 'prod' }} | |
jiraKeys: ${{ needs.ci.outputs.jira-keys }} | |
secrets: inherit |