Skip to content

Commit

Permalink
Update workflows and builder template.
Browse files Browse the repository at this point in the history
  • Loading branch information
marvel-uiuc committed Sep 23, 2024
1 parent 8d3ae4d commit 9ad6fe4
Show file tree
Hide file tree
Showing 6 changed files with 137 additions and 9 deletions.
93 changes: 93 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: deploy
on:
release:
types: [published]
env:
MAJORVERSION: ''
MINORVERSION: ''
FULLVERSION: ''
PRERELEASE: ''
COMPONENT_NAME: ${{ github.event.repository.name }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 'Checkout GitHub Action'
uses: actions/checkout@v4
- name: 'Get Version'
id: get_version
uses: dhkatz/[email protected]

- name: 'Check for correct naming convention'
if: ${{ !steps.get_version.outputs.is-semver }}
run: exit 1
- name: 'Get major version from tag'
run: echo "MAJORVERSION=${GITHUB_BRANCH}" >> $GITHUB_ENV
env:
GITHUB_BRANCH: ${{ steps.get_version.outputs.major }}
- name: 'Get minor version from tag'
run: echo "MINORVERSION=${GITHUB_BRANCH}.${GITHUB_BRANCH_MINOR}" >> $GITHUB_ENV
env:
GITHUB_BRANCH: ${{ steps.get_version.outputs.major }}
GITHUB_BRANCH_MINOR: ${{ steps.get_version.outputs.minor }}
- name: Get patch (full) version from tag
run: echo "FULLVERSION=${GITHUB_BRANCH}" >> $GITHUB_ENV
env:
GITHUB_BRANCH: ${{ steps.get_version.outputs.version-without-v }}
- name: Get prelease version from tag
run: echo "PRERELEASE=${GITHUB_BRANCH}" >> $GITHUB_ENV
env:
GITHUB_BRANCH: ${{ steps.get_version.outputs.prerelease }}
- name: Display major version install
run: echo "Installing major version ${MAJORVERSION} for ${COMPONENT_NAME}"
- name: Display minor version install
run: echo "Installing minor version ${MINORVERSION} for ${COMPONENT_NAME}"
- name: Display patch (full) version install
run: echo "Installing patch (full) version ${FULLVERSION} for ${COMPONENT_NAME}"
- name: Production run
if: ${{ steps.get_version.outputs.prerelease == '' }}
run: echo "Running production deployment"
- name: Prerelease run
if: ${{ steps.get_version.outputs.prerelease != '' }}
run: echo "Running development deployment"

- run: npm install
- run: npm rebuild
- run: npm run-script build
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ vars.TOOLKIT_AWS_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.TOOLKIT_AWS_ACCESS_SECRET }}
aws-region: us-east-2

- name: Deploy toolbox to S3 bucket for major version
if: ${{ steps.get_version.outputs.prerelease == '' }}
run: aws s3 sync ./dist/ s3://cdn.toolkit.illinois.edu/content/$COMPONENT_NAME/$MAJORVERSION --delete --acl bucket-owner-full-control
- name: Invalidate Cloudfront cache for major version
if: ${{ steps.get_version.outputs.prerelease == '' }}
run: aws cloudfront create-invalidation --distribution-id ${{ vars.TOOLKIT_AWS_CLOUDFRONT }} --paths "/$COMPONENT_NAME/$MAJORVERSION*"
- name: Deploy toolbox to S3 bucket for minor version
if: ${{ steps.get_version.outputs.prerelease == '' }}
run: aws s3 sync ./dist/ s3://cdn.toolkit.illinois.edu/content/$COMPONENT_NAME/$MINORVERSION --delete --acl bucket-owner-full-control
- name: Invalidate Cloudfront cache for minor version
if: ${{ steps.get_version.outputs.prerelease == '' }}
run: aws cloudfront create-invalidation --distribution-id ${{ vars.TOOLKIT_AWS_CLOUDFRONT }} --paths "/$COMPONENT_NAME/$MINORVERSION*"
- name: Deploy toolbox to S3 bucket for patch (full) version
if: ${{ steps.get_version.outputs.prerelease == '' }}
run: aws s3 sync ./dist/ s3://cdn.toolkit.illinois.edu/content/$COMPONENT_NAME/$FULLVERSION --delete --acl bucket-owner-full-control
- name: Invalidate Cloudfront cache for patch (full) version
if: ${{ steps.get_version.outputs.prerelease == '' }}
run: aws cloudfront create-invalidation --distribution-id ${{ vars.TOOLKIT_AWS_CLOUDFRONT }} --paths "/$COMPONENT_NAME/$FULLVERSION*"
- name: Deploy toolbox to S3 bucket for full version dev
if: ${{ steps.get_version.outputs.prerelease != '' }}
run: aws s3 sync ./dist/ s3://dev.toolkit.illinois.edu/content/$COMPONENT_NAME/$FULLVERSION --delete --acl bucket-owner-full-control
- name: Invalidate Cloudfront cache for full version dev
if: ${{ steps.get_version.outputs.prerelease != '' }}
run: aws cloudfront create-invalidation --distribution-id ${{ vars.TOOLKIT_AWS_CLOUDFRONT_DEV }} --paths "/$COMPONENT_NAME/$FULLVERSION*"
- name: Deploy toolbox to S3 bucket for latest dev
if: ${{ steps.get_version.outputs.prerelease != '' }}
run: aws s3 sync ./dist/ s3://dev.toolkit.illinois.edu/content/$COMPONENT_NAME/latest --delete --acl bucket-owner-full-control
- name: Invalidate Cloudfront cache for latest dev
if: ${{ steps.get_version.outputs.prerelease != '' }}
run: aws cloudfront create-invalidation --distribution-id ${{ vars.TOOLKIT_AWS_CLOUDFRONT_DEV }} --paths "/$COMPONENT_NAME/latest*"
37 changes: 37 additions & 0 deletions .github/workflows/deploy_development_manual.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: deploy_development_manual
on:
workflow_dispatch:
inputs:
version:
description: 'Version number'
required: true
default: ''
type: string
env:
COMPONENT_NAME: ${{ github.event.repository.name }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 'Checkout GitHub Action'
uses: actions/checkout@v4
- name: Get version from input
run: echo "VERSION=${GITHUB_BRANCH}" >> $GITHUB_ENV
env:
GITHUB_BRANCH: ${{ github.event.inputs.version }}
- name: Display version install
run: echo "Installing dev version ${VERSION} for component ${COMPONENT_NAME}"

- run: npm install
- run: npm rebuild
- run: npm run-script build
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ vars.TOOLKIT_AWS_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.TOOLKIT_AWS_ACCESS_SECRET }}
aws-region: us-east-2
- name: Deploy toolbox to S3 bucket
run: aws s3 sync ./dist/ s3://dev.toolkit.illinois.edu/content/$COMPONENT_NAME/$VERSION --delete --acl bucket-owner-full-control
- name: Invalidate Cloudfront cache
run: aws cloudfront create-invalidation --distribution-id ${{ vars.TOOLKIT_AWS_CLOUDFRONT_DEV }} --paths "/$COMPONENT_NAME/$VERSION*"
5 changes: 1 addition & 4 deletions .github/workflows/deploy_production_manual.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@ on:
default: ''
type: string
env:
MAJORVERSION: ''
MINORVERSION: ''
FULLVERSION: ''
COMPONENT_NAME: ${{ github.event.repository.name }}
jobs:
build:
Expand All @@ -23,7 +20,7 @@ jobs:
env:
GITHUB_BRANCH: ${{ github.event.inputs.version }}
- name: Display version install
run: echo "Installing production version ${VERSION}"
run: echo "Installing production version ${VERSION} for component ${COMPONENT_NAME}"

- run: npm install
- run: npm rebuild
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/publish_npm.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: publish_npm
on:
workflow_dispatch:
push:
tags: [ '**' ]
release:
types: [published]
jobs:
build:
runs-on: ubuntu-latest
Expand All @@ -15,7 +15,7 @@ jobs:
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: npm ci
- name: Publish to npm
- name: Install to npm
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{secrets.TOOLKIT_NPM_SECRET}}
NODE_AUTH_TOKEN: ${{secrets.TOOLKIT_NPM_SECRET}}
1 change: 1 addition & 0 deletions template/builder/{name}.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"type": "web component",
"element-name": "<%= name %>",
"description": "Description for builder.",
"purpose": "Imperative mood purpose for builder homepage.",
"toolkit-version": "",
"production-version": "",
"development-version": "1.0.0-alpha"
Expand Down
2 changes: 1 addition & 1 deletion template/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,6 @@
"lit": "3.1.3"
},
"devDependencies": {
"vite": "^5.2.0"
"vite": "^5.4.7"
}
}

0 comments on commit 9ad6fe4

Please sign in to comment.