Merge pull request #44 from kieler/dependabot/npm_and_yarn/extension/… #78
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
# This workflow will build a Java project with Maven | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven | |
# Furthermore, this workflow also builds a Node.js project with Yarn. | |
# For more information see: https://docs.github.com/en/actions/guides/building-and-testing-nodejs | |
name: CI | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
jobs: | |
mavenBuilds: | |
runs-on: ubuntu-latest | |
steps: | |
# Setup | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
- name: Cache local Maven repository | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
# Maven build | |
- name: build update site | |
run: MAVEN_OPTS="-Xmx2048M" mvn clean package --file build/pom.xml --update-snapshots | |
# TODO: find a good way to host this update site directly without zipping it for access for other builds. | |
# For example this: https://github.com/marketplace/actions/deploy-to-github-pages | |
# this: https://github.com/peaceiris/actions-gh-pages | |
# or this: http://www.lorenzobettini.it/2021/03/publishing-an-eclipse-p2-composite-repository-on-github-pages/ | |
- name: Archive OSGiViz Repository Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: OSGiViz Repository Artifact | |
path: build/de.cau.cs.kieler.osgiviz.repository/target/repository/ | |
if-no-files-found: error | |
- name: Archive OSGimodel Generator CLI | |
uses: actions/upload-artifact@v4 | |
with: | |
name: OSGimodel Generator CLI | |
path: plugins/de.scheidtbachmann.osgimodel.model.generate/target/de.scheidtbachmann.osgimodel.model.generate-*.jar | |
if-no-files-found: error | |
- name: Archive OSGiViz Language Server | |
uses: actions/upload-artifact@v4 | |
with: | |
name: OSGiViz Language Server | |
path: plugins/de.cau.cs.kieler.osgiviz.language.server/target/osgiviz-language-server.jar | |
if-no-files-found: error | |
nodeBuilds: | |
needs: mavenBuilds | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./extension/osgiviz | |
steps: | |
# Setup | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 20.x | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT | |
- uses: actions/cache@v4 | |
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
# Copy LS from previous job | |
- name: Retrieve Language Server | |
uses: actions/download-artifact@v4 | |
with: | |
name: OSGiViz Language Server | |
path: extension/osgiviz/server/ | |
# Build | |
- run: yarn | |
- run: yarn package | |
# Artifacts | |
- name: Archive OSGiViz VS Code Extension vsix | |
uses: actions/upload-artifact@v4 | |
with: | |
name: OSGiViz VS Code Extension | |
path: extension/osgiviz/osgiviz-*.vsix | |
if-no-files-found: error |