diff --git a/.gitea/workflows/build_and_test.yml b/.gitea/workflows/build_and_test.yml new file mode 100644 index 0000000..b6b423c --- /dev/null +++ b/.gitea/workflows/build_and_test.yml @@ -0,0 +1,22 @@ +name: "Build and test program" +on: push + +jobs: + build: + name: "Build and test" + runs-on: java-bookworm + steps: + - name: Install gradle + run: | + wget https://services.gradle.org/distributions/gradle-8.10-bin.zip + mkdir /opt/gradle + unzip -d /opt/gradle gradle-8.10-bin.zip + echo PATH=$PATH:/opt/gradle/gradle-8.10/bin >> $GITHUB_ENV + - name: Check out repository code + uses: actions/checkout@v4 + - name: Compile + run: gradle --build-cache compileJava + - name: Test + run: gradle --build-cache check + - name: Package + run: gradle --build-cache assemble diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 536643e..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,88 +0,0 @@ -image: docker:latest -services: - - docker:dind - -stages: - - build - - test - - package - - release - - deploy - -# Disable the Gradle daemon for Continuous Integration servers as correctness -# is usually a priority over speed in CI environments. Using a fresh -# runtime for each build is more reliable since the runtime is completely -# isolated from any previous builds. -variables: - GRADLE_OPTS: "-Dorg.gradle.daemon=false" - # Use TLS https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_CERTDIR: "/certs" - CONTAINER_BRANCH_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG - CONTAINER_RELEASE_IMAGE: $CI_REGISTRY_IMAGE:latest - -before_script: - - export GRADLE_USER_HOME=`pwd`/.gradle - -build: - image: gradle:jdk15 - stage: build - script: gradle --build-cache compileJava - cache: - key: "$CI_COMMIT_REF_NAME" - policy: push - paths: - - build - - .gradle - - -test: - image: gradle:jdk15 - stage: test - script: gradle --build-cache check - cache: - key: "$CI_COMMIT_REF_NAME" - policy: pull - paths: - - build - - .gradle - -package: - image: gradle:jdk15 - stage: package - script: gradle --build-cache assemble - cache: - key: "$CI_COMMIT_REF_NAME" - policy: push - paths: - - build - - .gradle - artifacts: - paths: - - build/libs/moviesquotebot.jar - -release: - stage: release - script: - - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - docker build . -t $CONTAINER_BRANCH_IMAGE - - docker push $CONTAINER_BRANCH_IMAGE - -release-master: - stage: release - script: - - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - docker build . -t $CONTAINER_RELEASE_IMAGE - - docker push $CONTAINER_RELEASE_IMAGE - only: - - master - -deploy: - stage: deploy - before_script: - - eval $(ssh-agent -s) - - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - - mkdir -p ~/.ssh - - chmod 700 ~/.ssh - script: - - ssh -o StrictHostKeyChecking=no -p $SSH_PORT $SSH_DESTINATION "cd $PATH_TO_APPLICATION; $UPGRADE_COMMAND;"