ci: fix deployment #12
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 ::set-output name=download_url:: ${{ steps.upload-release-asset.outputs.browser_download_url }} | |
else | |
echo ::set-output name=download_url::${{ steps.publish.outputs.blobUrl }} | |
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 |