From cb457a34cb37b890a8ce73154b09d9e08628b039 Mon Sep 17 00:00:00 2001 From: Steven Looman Date: Tue, 14 Nov 2023 22:10:21 +0100 Subject: [PATCH] Release automation --- .github/workflows/build.yml | 4 ++-- .github/workflows/release.yml | 39 +++++++++++++++++++++++++++++++++++ README.md | 2 +- 3 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4a251cc1..8455f5e8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Lint, build and test +name: Lint and package on: push: branches: @@ -8,7 +8,7 @@ on: jobs: build: - name: Build and test + name: Build, test and package strategy: matrix: os: [ubuntu-latest, windows-latest] diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..b638fafc --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,39 @@ +name: Package and create a release with assets +on: + push: + tags: + - "*" + +jobs: + build: + name: Package and create a release with assets + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + java-version: 11 + distribution: 'zulu' + cache: 'maven' + - name: Cache Maven packages + uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 + - name: Test and package + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: mvn --batch-mode --update-snapshots package + - run: mkdir staging && cp **/target/*.jar staging + - run: cd magik-language-server/client-vscode && npm install . && npm run package + - run: cp magik-language-server/client-vscode/magik-language-server-*.vsix staging + + - name: Release + uses: softprops/action-gh-release@v1 + with: + files: | + staging/* diff --git a/README.md b/README.md index 18567693..bba32b25 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ $ mvn -B versions:set -DnewVersion= -DgenerateBackupPoms=false Be sure to also update the symbolic links in `magik-language-server/client-vscode/server`. Then update `magik-language-server/client-vscode/client/src/const.ts`, and `magik-language-server/client-vscode/client/package.json` and related package files. -Creation and uploading of artifacts is currently done by hand. +Then, create a release by pushing a new tag to Github. ### SonarCloud