Skip to content

added condition to reschedule #134

added condition to reschedule

added condition to reschedule #134

Workflow file for this run

name: Scheduly
on:
push:
branches: [ main ]
workflow_dispatch:
jobs:
test-all:
name: Run test
runs-on: ubuntu-20.04
env:
SLACK_TOKEN_TEST: ${{ secrets.SLACK_TOKEN_TEST }}
steps:
- name: Clone repository
uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '17'
- name: Replace Slack OAuth Token
run: |
sed -i "s/slack.oauth.token=.*/slack.oauth.token=${{ secrets.SLACK_TOKEN }}/" src/main/resources/application.properties
- name: Run mvn v
run: mvn -v
- name: Run java v
run: java -version
- name: Run unitary test
run: mvn -B -Dtest=*UnitaryTest test
- name: Run integration test
run: mvn -B -Dtest=*IntegrationTest test
publish_in_github_packages:
name: Publish github artifact
runs-on: ubuntu-20.04
needs: [test-all]
steps:
- name: Clone repository
uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '17'
- name: Replace Slack OAuth Token
run: |
sed -i "s/slack.oauth.token=.*/slack.oauth.token=${{ secrets.SLACK_TOKEN_USER }}/" src/main/resources/application.properties
- name: Publish package
run: mvn --batch-mode deploy -Dmaven.test.skip=true
env:
GITHUB_TOKEN: ${{ secrets.PACKAGE_PASSWORD }}
- name: Upload jar for next job
uses: actions/upload-artifact@v3
with:
name: target
path: target
retention-days: 1
publish_in_dockerhub:
name: Publish in DockerHub
runs-on: ubuntu-20.04
outputs:
tag: ${{ steps.project.outputs.tag }}
needs: [publish_in_github_packages]
env:
IMAGE_NAME: scheduly
steps:
- name: Clone repository
uses: actions/checkout@v2
- name: Download jar from previous job
uses: actions/download-artifact@v3
with:
name: target
path: target
- name: Read Git Commit ID
run: |
echo ls
GIT_COMMIT_ID=$(cat target/classes/git.properties | grep "git.commit.id.abbrev" | cut -d'=' -f2)
echo "Git Commit ID Abbreviated: $GIT_COMMIT_ID"
echo "::set-output name=tag::$GIT_COMMIT_ID"
id: project
- name: Build image
run: docker build -t $IMAGE_NAME .
- name: Login to DockerHub
run: docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" -p "${{ secrets.DOCKERHUB_TOKEN }}"
- name: Push image to DockerHub
run: |
docker tag $IMAGE_NAME ${{ secrets.DOCKERHUB_USERNAME }}/$IMAGE_NAME:${{ steps.project.outputs.tag }}
docker push ${{ secrets.DOCKERHUB_USERNAME }}/$IMAGE_NAME:${{ steps.project.outputs.tag }}
- name: Login to GitHub Docker Registry
run: echo "${{ secrets.PACKAGE_PASSWORD }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: Push image to GitHub Container Registry
run: |
IMAGE_VERSION=${{ steps.project.outputs.tag }}
IMAGE_USER=molynx
docker tag $IMAGE_NAME ghcr.io/$IMAGE_USER/$IMAGE_NAME:$IMAGE_VERSION
docker push ghcr.io/$IMAGE_USER/$IMAGE_NAME:$IMAGE_VERSION
deploy_in_okteto:
name: Deploy in Okteto
runs-on: ubuntu-20.04
needs: [publish_in_dockerhub]
steps:
- name: Clone repository
uses: actions/checkout@v2
- name: Update schedule.yml
run: |
echo "Scheduly image version: ${{ needs.publish_in_dockerhub.outputs.tag }}"
sed -i 's|image: molynx/scheduly:2.0.0-SNAPSHOT|image: molynx/scheduly:${{ needs.publish_in_dockerhub.outputs.tag }}|' k8s/scheduly.yml
- uses: okteto/context@latest
with:
token: ${{ secrets.OKTETO_TOKEN }}
- name: "Activate Namespace"
uses: okteto/namespace@latest
with:
namespace: molynx
- name: "Deploy mongo"
uses: okteto/apply@latest
with:
namespace: molynx
manifest: ./k8s/mongodb.yml
- name: "Deploy application"
uses: okteto/apply@latest
with:
namespace: molynx
manifest: ./k8s/scheduly.yml
test-rest-e2e:
name: Run rest e2e test
runs-on: ubuntu-20.04
env:
SLACK_TOKEN_TEST: ${{ secrets.SLACK_TOKEN_TEST }}
needs: [deploy_in_okteto]
steps:
- name: Clone repository
uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '17'
- name: Replace Slack OAuth Token
run: |
sed -i "s/slack.oauth.token=.*/slack.oauth.token=${{ secrets.SLACK_TOKEN }}/" src/main/resources/application.properties
- name: Run mvn v
run: mvn -v
- name: Run java v
run: java -version
- name: Run Rest E2E test
run: mvn -B -Dtest=*RestControllerE2ETest test
test-web-e2e:
name: Run web e2e test
runs-on: ubuntu-20.04
env:
SLACK_TOKEN_TEST: ${{ secrets.SLACK_TOKEN_TEST }}
needs: [test-rest-e2e]
steps:
- name: Clone repository
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: maven
- name: Setup Chrome
uses: browser-actions/setup-chrome@latest
- name: Chrome version
run: chrome --version
- name: Replace Slack OAuth Token
run: |
sed -i "s/slack.oauth.token=.*/slack.oauth.token=${{ secrets.SLACK_TOKEN }}/" src/main/resources/application.properties
- name: Build with Maven
run: mvn -B -Dtest=*WebControllerE2ETest test