diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index efbb62f..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,145 +0,0 @@ -version: 2 - -aliases: - - &sonar-scan - name: Sonar scan - command: | - mvn -Psonar -s .circleci/settings.xml \ - sonar:sonar \ - -Dsonar.projectKey=entur_${CIRCLE_PROJECT_REPONAME} \ - -Dsonar.organization=${SONAR_ORG} \ - -Dsonar.projectName=${CIRCLE_PROJECT_REPONAME} \ - -Dsonar.host.url=https://sonarcloud.io \ - -Dsonar.login=${ENTUR_SONAR_PASSWORD} - - &jfrog-login - name: Rename jfrog environment variable for maven setting.xml - command: | - echo "export JFROG_USER=$ARTIFACTORY_USER" >> $BASH_ENV - echo "export JFROG_PASS=$ARTIFACTORY_PASSWORD" >> $BASH_ENV - - &install-xmlstarlet - name: Install xmlstarlet - command: | - sudo rm -rf /var/lib/apt/lists/* - sudo apt-get update - sudo apt-get -y install xmlstarlet - -jobs: - test: - docker: - - image: cimg/openjdk:11.0.22 - environment: - MAVEN_OPTS: -Xmx3G - steps: - - checkout - - restore_cache: - keys: - - dep-cache-{{ checksum "pom.xml" }} - # fallback to the most recent cache if there is no exact match for this pom.xml - - dep-cache- - - run: *install-xmlstarlet - - run: - name: Download Maven settings - command: wget https://raw.githubusercontent.com/entur/circleci-toolbox-image-java11/master/tools/m2/settings.xml -O .circleci/settings.xml - - run: *jfrog-login - - run: - name: Refresh cache - command: mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.0:go-offline -s .circleci/settings.xml - - save_cache: - paths: - - ~/.m2 - key: dep-cache-{{ checksum "pom.xml" }} - # Cannot use -o because of snapshot dependencies. - - run: - name: Run Maven verify - command: mvn verify -s .circleci/settings.xml - - run: - name: Save test results - command: | - mkdir -p ~/junit/ - find . -type f -regex ".*/target/surefire-reports/.*xml" -exec cp {} ~/junit/ \; - when: always - - store_test_results: - path: ~/junit - - store_artifacts: - path: ~/junit - - persist_to_workspace: - root: ~/project - paths: - - target - - .circleci - - sonar: - docker: - - image: cimg/openjdk:17.0.11 - environment: - MAVEN_OPTS: -Xmx3G - steps: - - checkout - - restore_cache: - key: dep-cache-{{ checksum "pom.xml" }} - - attach_workspace: - at: ~/project - - run: *jfrog-login - - run: *sonar-scan - - build: - docker: - - image: cimg/openjdk:11.0.22 - environment: - MAVEN_OPTS: -Xmx3G - steps: - - checkout - - restore_cache: - key: dep-cache-{{ checksum "pom.xml" }} - - run: *install-xmlstarlet - - run: *jfrog-login - - run: - name: Download Maven settings - command: wget https://raw.githubusercontent.com/entur/circleci-toolbox-image-java11/master/tools/m2/settings.xml -O .circleci/settings.xml - - run: - name: Refresh cache - command: mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.0:go-offline -s .circleci/settings.xml - - save_cache: - paths: - - ~/.m2 - key: dep-cache-{{ checksum "pom.xml" }} - - run: - name: Run Maven package - command: mvn package -s .circleci/settings.xml -DskipTests - - deploy: - docker: - - image: cimg/openjdk:11.0.22 - steps: - - checkout - - restore_cache: - key: dep-cache-{{ checksum "pom.xml" }} - - attach_workspace: - at: ~/project - - run: *install-xmlstarlet - - run: *jfrog-login - - run: - name: Run Maven deploy - command: mvn deploy -s .circleci/settings.xml -DskipTests - -workflows: - version: 2 - build_test_deploy: - jobs: - - test: - context: global - - sonar: - context: global - requires: - - test - - build: - context: global - requires: - - sonar - - deploy: - context: global - requires: - - build - filters: - branches: - only: master diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..864803d --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,91 @@ +name: Build and Deploy +on: + push: + branches: + - master + pull_request: + branches: + - master +env: + JFROG_USER: ${{ secrets.ARTIFACTORY_AUTH_USER }} + JFROG_PASS: ${{ secrets.ARTIFACTORY_AUTH_TOKEN }} +jobs: + maven-verify: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Copy maven settings + run: | + wget https://raw.githubusercontent.com/entur/ror-maven-settings/master/.m2/settings.xml -O .github/workflows/settings.xml + - uses: actions/setup-java@v4 + with: + java-version: 11 + distribution: liberica + - name: Cache Maven dependencies + uses: actions/cache@v4 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + ${{ runner.os }}-maven- + ${{ runner.os }}- + + - name: Install xmlstarlet + run: | + sudo apt-get update + sudo apt-get install xmlstarlet + - name: Run maven build + run: mvn verify -s .github/workflows/settings.xml + - name: Sonar Scan + env: + SONAR_TOKEN: ${{ secrets.ENTUR_SONAR_PASSWORD }} + SONAR_PROJECT_NAME: ${{ github.event.repository.name }} + SONAR_PROJECT_KEY: entur_${{ github.event.repository.name }} + run: | + mvn -Psonar -s .github/workflows/settings.xml \ + sonar:sonar \ + -Dsonar.projectKey=${SONAR_PROJECT_KEY} \ + -Dsonar.organization=enturas-github \ + -Dsonar.projectName=${SONAR_PROJECT_NAME} \ + -Dsonar.host.url=https://sonarcloud.io \ + -Dsonar.token=${SONAR_TOKEN} + - name: Upload artifact + uses: actions/upload-artifact@v4.4.3 + with: + path: target/*.jar + deploy: + if: github.repository_owner == 'entur' && github.event_name == 'push' && github.ref == 'refs/heads/master' + needs: [maven-verify] + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Copy maven settings + run: | + wget https://raw.githubusercontent.com/entur/ror-maven-settings/master/.m2/settings.xml -O .github/workflows/settings.xml + - uses: actions/setup-java@v4 + with: + java-version: 11 + distribution: liberica + - name: Cache Maven dependencies + uses: actions/cache@v4 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + ${{ runner.os }}-maven- + ${{ runner.os }}- + + - name: Install xmlstarlet + run: | + sudo apt-get update + sudo apt-get install xmlstarlet + + - name: Release to Entur JFrog + run: mvn deploy -s .github/workflows/settings.xml -DskipTests +