Örnek - checkout + Set up JDK + Build
GitHub'daki repository'ye gidilir. Üst başlıktaki "Actions" düğmesine tıklanır. "New workflow" düğmesine tıklanır. "Java with Maven" düğmesine tıklanır. Şeklen şöyle
Karşımıza çıkan dosya şöyle. Dosya yolu şöyle "myrepository/.github/workflows/maven.yaml"
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time# For more information see: https://help.github.com/actions/language-and-framework-guides/ building-and-testing-java-with-mavenname: Java CI with Mavenon:push:branches: [ "master" ]pull_request:branches: [ "master" ]jobs:build:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v3- name: Set up JDK 11uses: actions/setup-java@v3with:java-version: '11'distribution: 'temurin'cache: maven- name: Build with Mavenrun: mvn -B package --file pom.xml
Örnek - checkout + Set up JDK + Build
Şöyle yaparız
name: Java CI with Maven
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
- name: Build with Maven
run: ./mvnw clean installÖrnek
Push işleminden sonra testleri çalıştırıp, Docker'a image push'lamak için şöyle yaparız
name: CI/CD Pipeline
## The following codes trigger the pipeline when the code is pushed on the main branch.
on:
push:
branches: [ main ]
jobs:
## First Job: Test
test:
name: Unit Test
## Run on Ubuntu using the Latest Version
runs-on: ubuntu-latest
## Job's steps
steps:
- uses: actions/checkout@v1
## Set up JDK 11
- name: Set up JDK
uses: actions/setup-java@v1
with:
java-version: '11'
## Set up Maven Cache
- name: Cache Maven packages
uses: actions/cache@v1
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
## Run Maven Tests
- name: Run Tests
run: mvn -B test
## Second Job: Build and Push
build-and-push:
name: Build and Push
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'adopt'
cache: maven
- name: Build with Maven
run: mvn -B package --file pom.xml
- name: Dockerize & Push Docker Image
uses: mr-smithers-excellent/docker-build-push@v5
with:
## Docker Hub Account Number / Repository Name
image: 19812381238/product-microservice
tags: latest
registry: docker.io
## Dockerfile Path
dockerfile: product/Dockerfile
## Keep these secrets on GitHub for the privacy of our information
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}Örnek
Github sayfasına release yapmak için şöyle yaparız
name: Java CI to create and upload release on pull request
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
build-number: ${GITHUB_RUN_NUMBER}
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: 'maven'
- run: mvn clean package -DskipTests
- run: mkdir staging && mv target/yb-workload-sim.jar target/yb-workload-sim-${{ env.build-number }}.jar && cp target/*.jar staging
- uses: actions/upload-artifact@v3
with:
name: Package
path: staging
retention-days: 1
- uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: "${{ secrets.YOUR-GITHUB-TOKEN }}"
automatic_release_tag: "${{ github.run_number }}"
title: "Automated Build ${{ github.run_number }}"
prerelease: true
files: staging/*.jar
Hiç yorum yok:
Yorum Gönder