feat(assets): add files for m41 #6134
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
name: CI Workflow | |
on: | |
push: | |
# trigger on all branches except for dependabot-triggered push events | |
branches-ignore: [dependabot/**] | |
tags: | |
- 'v*' # trigger on all tags | |
paths-ignore: | |
- '**.md' # ignore changes in markdown files | |
pull_request: | |
branches: [develop] | |
types: [opened, synchronize, reopened] | |
permissions: | |
contents: read | |
# globals | |
env: | |
# general settings | |
MAIN_REPO_OWNER: webern-unibas-ch # Main repo owner (default: webern-unibas-ch; should not be changed) | |
# dev settings | |
DEV_REPO: webern-unibas-ch/awg-app-dev | |
DEV_GH_PAGES_BRANCH: gh-pages | |
DEV_GH_PAGES_DIR: gh-pages-dir | |
DIST_DIR: dist | |
jobs: | |
test: | |
name: Run tests (Node v${{ matrix.node-version }}, ${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
node-version: [18.19, 20.9] # TODO (when Angular allows it): 21.x | |
outputs: | |
sha: ${{ steps.get-sha.outputs.SHA }} | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1 | |
with: | |
egress-policy: audit | |
- name: Checkout repository | |
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # ratchet:actions/[email protected] | |
with: | |
fetch-depth: 0 # Get all history and branches | |
- name: Get git sha | |
id: get-sha | |
run: echo "SHA=$(git describe)" >> $GITHUB_OUTPUT | |
- name: Verify git sha | |
run: | | |
echo "SHA: ${{ steps.get-sha.outputs.SHA }}" | |
- name: Set up node ${{ matrix.node-version}} | |
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # ratchet:actions/[email protected] | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'yarn' | |
- name: yarn install dependencies | |
run: | | |
yarn install | |
- name: Run CI tests with coverage | |
run: | | |
yarn run test:ci | |
- name: Upload code coverage | |
if: matrix.node-version == 20.9 # upload coverage report for current node version only | |
uses: codecov/codecov-action@6d798873df2b1b8e5846dba6fb86631229fbcb17 # v4.4.0 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
with: | |
flags: unittests | |
env_vars: ${{ matrix.os }}, ${{ matrix.node-version }} | |
- name: Perform SonarCloud Analysis | |
if: matrix.node-version == 20.9 && github.event_name != 'pull_request' && github.repository_owner == env.MAIN_REPO_OWNER # perform SonarCloud analysis only for current node version and not with pull requests or forks(token issue) | |
uses: SonarSource/sonarcloud-github-action@49e6cd3b187936a73b8280d59ffd9da69df63ec9 # ratchet:SonarSource/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
- name: Test build from develop for GH Pages | |
if: github.ref == 'refs/heads/develop' | |
run: | | |
echo "Updating dev-version" | |
yarn run pre-release --release-as ${{ steps.get-sha.outputs.SHA }} --skip.changelog --skip.commit --skip.tag | |
echo "Building dev-version" | |
yarn run build:dev | |
- name: Test build from main for GH Pages | |
if: github.ref == 'refs/heads/main' | |
run: | | |
yarn run build:gh | |
- name: Upload build artifacts | |
if: matrix.node-version == 20.9 # upload build artifacts for current node version only | |
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # ratchet:actions/[email protected] | |
with: | |
name: dist | |
path: ${{ github.workspace }}/${{ env.DIST_DIR }} | |
retention-days: 1 | |
deploy_dev: | |
# run only on develop | |
if: github.ref == 'refs/heads/develop' | |
name: Deploy app from develop (Node v${{ matrix.node-version }}, ${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
needs: test | |
permissions: | |
contents: write | |
env: | |
SHA: ${{ needs.test.outputs.sha }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
node-version: [20.9] | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1 | |
with: | |
egress-policy: audit | |
- name: Checkout repository | |
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # ratchet:actions/[email protected] | |
with: | |
# ref (branch, tag or SHA) to check out | |
ref: ${{ env.DEV_GH_PAGES_BRANCH }} | |
# relative path under $GITHUB_WORKSPACE to place the repository | |
path: ${{ env.DEV_GH_PAGES_DIR }} | |
- name: Download build artifacts | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # ratchet:actions/[email protected] | |
with: | |
name: dist | |
path: ${{ github.workspace }}/${{ env.DIST_DIR }} | |
- name: Copy artifacts to gh-pages | |
run: | | |
cp -r ${{ env.DIST_DIR }}/awg-app/. ${{ env.DEV_GH_PAGES_DIR }}/dev/ | |
- name: Configure git | |
working-directory: ${{ env.DEV_GH_PAGES_DIR }} | |
run: | | |
echo "Configuring git" | |
git config user.name "github-actions" | |
git config user.email "[email protected]" | |
- name: Commit files | |
working-directory: ${{ env.DEV_GH_PAGES_DIR }} | |
run: | | |
echo "Running git commit" | |
git add . | |
git commit -m "Staging dev (${{ env.SHA }}) on gh-pages" | |
- name: Push changes to gh-pages (dry-run mode) | |
working-directory: ${{ env.DEV_GH_PAGES_DIR }} | |
run: git push -v --dry-run origin HEAD:$DEV_GH_PAGES_BRANCH | |
- name: Push changes to gh-pages | |
working-directory: ${{ env.DEV_GH_PAGES_DIR }} | |
run: git push -v origin HEAD:$DEV_GH_PAGES_BRANCH | |
- name: Congratulations | |
if: ${{ success() }} | |
run: echo "🎉 New develop build deployed 🎊" | |
deploy: | |
# run only on main | |
if: github.ref == 'refs/heads/main' | |
name: Deploy app from main (Node v${{ matrix.node-version }}, ${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
needs: test | |
permissions: | |
contents: write | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
node-version: [20.9] | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1 | |
with: | |
egress-policy: audit | |
- name: Checkout repository | |
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # ratchet:actions/[email protected] | |
- name: Set up node ${{ matrix.node-version}} | |
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # ratchet:actions/[email protected] | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'yarn' | |
- name: yarn install dependencies | |
run: | | |
yarn install | |
- name: Build app for GH Pages | |
run: | | |
yarn run build:gh | |
- name: Deploy to GH Pages | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
yarn run deploy:ci | |
release: | |
# run only on tags | |
if: startsWith(github.ref, 'refs/tags/') | |
name: Create Release from tag | |
runs-on: ${{ matrix.os }} | |
needs: test | |
permissions: | |
contents: write | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
node-version: [20.9] | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1 | |
with: | |
egress-policy: audit | |
- name: Get tag version | |
id: get_version | |
run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/} | |
- name: Create Release | |
id: create_release | |
if: ${{ success() && startsWith(github.ref, 'refs/tags/') }} | |
uses: softprops/action-gh-release@69320dbe05506a9a39fc8ae11030b214ec2d1f87 # ratchet:softprops/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
TAG_VERSION: ${{ steps.get_version.outputs.VERSION }} | |
with: | |
name: Release ${{ env.TAG_VERSION }} | |
body: "A prototype web application for the online edition of the [Anton Webern Gesamtausgabe](https://www.anton-webern.ch), located at the Department of Musicology of the University of Basel. It is written in [Angular](https://angular.io/) and runs on [edition.anton-webern.ch](https://edition.anton-webern.ch).\n\n Changes since last release: https://github.com/${{ github.repository }}/blob/${{ env.TAG_VERSION }}/CHANGELOG.md" | |
draft: false | |
prerelease: false |