diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..90e05c40 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "github-actions" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 00000000..fdd0f42b --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,13 @@ +feature: + - any: + - head-branch: [ '^feature' ] +fix: + - any: + - head-branch: [ '^fix', '^hotfix' ] +chore: + - any: + - head-branch: [ '^chore', '^documentation', '^docs', '^ci', '^refactor' ] +release: + - all: + - base-branch: [ 'main', 'master' ] + - head-branch: [ 'development', 'dev' ] diff --git a/.github/pr-labels.yml b/.github/pr-labels.yml deleted file mode 100644 index f95cf6e9..00000000 --- a/.github/pr-labels.yml +++ /dev/null @@ -1,3 +0,0 @@ -feature: ['feature/*', 'feat/*'] -fix: ['fix/*', 'hotfix'] -chore: ['chore/*', 'documentation/*', 'docs/*', 'ci/*', 'refactor/*'] diff --git a/.github/workflows/build_package.yml b/.github/workflows/build_package.yml index d616186c..77c5fe5c 100644 --- a/.github/workflows/build_package.yml +++ b/.github/workflows/build_package.yml @@ -13,13 +13,15 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 + - name: Checkout repository + uses: actions/checkout@v3 + - name: Set up JDK 8 + uses: actions/setup-java@v3 with: - java-version: 1.8 + distribution: 'zulu' + java-version: '8' - name: Load local Maven repository cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index ef963f52..1b1841d8 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -13,16 +13,15 @@ name: "CodeQL" on: push: - branches: [ master, development, patch/*, release/*, hotfix/* ] + branches: [ main, master, development, release/*, hotfix/* ] pull_request: # The branches below must be a subset of the branches above - branches: [ master ] + branches: [ main, master ] schedule: - cron: '21 1 * * 4' jobs: analyze: - name: analyze runs-on: ubuntu-latest permissions: actions: read @@ -37,47 +36,48 @@ jobs: # Learn more about CodeQL language support at https://git.io/codeql-language-support steps: - - name: Checkout repository - uses: actions/checkout@v2 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 - with: - java-version: 1.8 - settings-path: ${{ github.workspace }} + - name: Checkout repository + uses: actions/checkout@v3 + - name: Set up JDK 8 + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: '8' + settings-path: ${{ github.workspace }} - - name: Load local Maven repository cache - uses: actions/cache@v2 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- + - name: Load local Maven repository cache + uses: actions/cache@v3 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + # queries: ./path/to/local/query, your-org/your-repo/queries@main - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v2 - # ℹī¸ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl + # ℹī¸ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl - # ✏ī¸ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language + # ✏ī¸ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language - #- run: | - # make bootstrap - # make release + #- run: | + # make bootstrap + # make release - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 472b04fa..ed38abf1 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -11,24 +11,28 @@ jobs: release: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 + - name: Checkout repository + uses: actions/checkout@v3 + - name: Set up JDK 8 + uses: actions/setup-java@v3 with: - java-version: 1.8 + distribution: 'zulu' + java-version: '8' settings-path: ${{ github.workspace }} - name: Load local Maven repository cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} restore-keys: | ${{ runner.os }}-maven- + - name: Set up git run: | git config --global user.email "support@qbic.zendesk.com" git config --global user.name "JohnnyQ5" + - name: Set version in Maven project run: mvn versions:set -DnewVersion=${{ github.event.inputs.versionTag }} @@ -40,7 +44,7 @@ jobs: && !( contains(github.event.inputs.versionTag, 'alpha') || contains(github.event.inputs.versionTag, 'beta') || contains(github.event.inputs.versionTag, 'rc')) }} - uses: actions/github-script@v4.0.2 + uses: actions/github-script@v6 with: github-token: ${{secrets.JOHNNY_Q5_REPORTS_TOKEN}} script: | @@ -48,12 +52,13 @@ jobs: tag_name: "${{ github.event.inputs.versionTag }}", generate_release_notes: true }); + - name: Create Pre-Release Notes if: ${{ !startsWith(github.ref, 'refs/tags/') && ( contains(github.event.inputs.versionTag, 'alpha') || contains(github.event.inputs.versionTag, 'beta') || contains(github.event.inputs.versionTag, 'rc')) }} - uses: actions/github-script@v4.0.2 + uses: actions/github-script@v6 with: github-token: ${{secrets.JOHNNY_Q5_REPORTS_TOKEN}} script: | @@ -62,6 +67,7 @@ jobs: generate_release_notes: true, prerelease: true }); + - name: Publish artefact to QBiC Nexus Repository run: mvn --quiet --settings $GITHUB_WORKSPACE/.github.settings.xml deploy env: @@ -81,23 +87,12 @@ jobs: run: git push - name: Open PR with version bump - uses: actions/github-script@v4.0.2 + uses: actions/github-script@v6 with: github-token: ${{secrets.JOHNNY_Q5_REPORTS_TOKEN}} script: | await github.request(`POST /repos/${{ github.repository }}/pulls`, { title: 'Update version to ${{ github.event.inputs.versionTag }}', head: 'release/set-version-to-${{ github.event.inputs.versionTag }}', - base: 'master' - }); - - - name: Open PR to development - uses: actions/github-script@v4.0.2 - with: - github-token: ${{secrets.JOHNNY_Q5_REPORTS_TOKEN}} - script: | - await github.request(`POST /repos/${{ github.repository }}/pulls`, { - title: 'Merge release ${{ github.event.inputs.versionTag }} into development', - head: 'master', - base: 'development' + base: 'main' }); diff --git a/.github/workflows/java_checkstyle.yml b/.github/workflows/java_checkstyle.yml index 67094d5a..79918cff 100644 --- a/.github/workflows/java_checkstyle.yml +++ b/.github/workflows/java_checkstyle.yml @@ -7,11 +7,13 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 + - name: Checkout repository + uses: actions/checkout@v3 + - name: Set up JDK 8 + uses: actions/setup-java@v3 with: - java-version: 1.8 + distribution: 'zulu' + java-version: '8' - name: Download Checkstyle run: wget https://github.com/checkstyle/checkstyle/releases/download/checkstyle-8.31/checkstyle-8.31-all.jar diff --git a/.github/workflows/label-pull-request.yml b/.github/workflows/label-pull-request.yml deleted file mode 100644 index b03eee14..00000000 --- a/.github/workflows/label-pull-request.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Label Pull Requests - -on: - pull_request: - types: [ opened, edited ] - -jobs: - label: - runs-on: ubuntu-latest - steps: - - uses: TimonVS/pr-labeler-action@v3 - with: - configuration-path: .github/pr-labels.yml # optional, .github/pr-labeler.yml is the default value - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/label-pull-requests.yml b/.github/workflows/label-pull-requests.yml new file mode 100644 index 00000000..931ff6da --- /dev/null +++ b/.github/workflows/label-pull-requests.yml @@ -0,0 +1,17 @@ +name: Label Pull Requests + +permissions: + contents: read + pull-requests: write + +on: + pull_request: + types: [ opened, edited ] + +jobs: + Assign-Label-To-Pull-Request: + runs-on: ubuntu-latest + steps: + - uses: actions/labeler@v5.0.0-alpha.1 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/nexus-publish-snapshots.yml b/.github/workflows/nexus-publish-snapshots.yml index 6d498273..9d98c352 100644 --- a/.github/workflows/nexus-publish-snapshots.yml +++ b/.github/workflows/nexus-publish-snapshots.yml @@ -2,30 +2,30 @@ # qbic-repo.qbic.uni-tuebingen.de packages when a release is created # For more information see: https://github.com/actions/setup-java#apache-maven-with-a-settings-path -name: Nexus Package +name: Deploy Snapshot on: push: branches: - development - workflow_dispatch: jobs: - publish_snapshots: + publish_snapshot: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 + - name: Checkout repository + uses: actions/checkout@v3 + - name: Set up JDK 8 + uses: actions/setup-java@v3 with: - java-version: 1.8 - server-id: github # Value of the distributionManagement/repository/id field of the pom.xml + distribution: 'zulu' + java-version: '8' settings-path: ${{ github.workspace }} - + - name: Load local Maven repository cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} @@ -38,10 +38,10 @@ jobs: - name: Set version in Maven project run: mvn versions:set -DnewVersion='${project.version}-SNAPSHOT' - - name: Build compiled bundle with Maven - run: mvn clean -B package --file pom.xml + - name: Build with Maven + run: mvn -B package --file pom.xml - - name: Publish compiled bundle to QBiC Nexus Repository + - name: Publish artefact to QBiC Nexus Repository run: mvn --settings $GITHUB_WORKSPACE/.github.settings.xml deploy env: MAVEN_REPO_USERNAME: ${{ secrets.NEXUS_USERNAME }} diff --git a/.github/workflows/run_tests.yml b/.github/workflows/run_tests.yml index 5708a258..a5e32810 100644 --- a/.github/workflows/run_tests.yml +++ b/.github/workflows/run_tests.yml @@ -13,14 +13,17 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 + - name: Checkout repository + uses: actions/checkout@v3 + - name: Set up JDK 8 + uses: actions/setup-java@v3 with: - java-version: 1.8 + distribution: 'zulu' + java-version: '8' + settings-path: ${{ github.workspace }} - name: Load local Maven repository cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}