From 2c64746c5bfe59679eb966d4ab633af3bb06f162 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Kapica?= Date: Sat, 22 Jun 2024 20:33:36 +0200 Subject: [PATCH] Setup basic CI using github workflows --- .github/workflows/ci.yaml | 74 +++++++++++++++++++++++++++++++++++++++ .gitignore | 1 + 2 files changed, 75 insertions(+) create mode 100644 .github/workflows/ci.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..9798e24 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,74 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + branches: + - main + +permissions: { } + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }}/api + +jobs: + test-api: + name: Test API + runs-on: ubuntu-latest + + permissions: + contents: read + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + sparse-checkout: 'api' + - run: "find ./api -maxdepth 1 -mindepth 1 -exec mv {} . \\; && rm -r ./api" + - name: Setup JDK + uses: actions/setup-java@v3 + with: + distribution: temurin + java-version: 21 + cache: sbt + - name: Install sbt + run: | + sudo apt-get update + sudo apt-get install apt-transport-https curl gnupg -yqq + echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list + echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.list + curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo -H gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/scalasbt-release.gpg --import + sudo chmod 644 /etc/apt/trusted.gpg.d/scalasbt-release.gpg + sudo apt-get update + sudo apt-get install sbt + - name: Build and Test + run: sbt -v +test + + build-api-image: + name: Build API Image + needs: test-api + runs-on: ubuntu-latest + + permissions: + contents: read + packages: write + + steps: + - uses: actions/checkout@v4 + with: + sparse-checkout: 'api' + - run: "find ./api -maxdepth 1 -mindepth 1 -exec mv {} . \\; && rm -r api" + - uses: docker/setup-buildx-action@v3 + - uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - uses: docker/build-push-action@v2 + with: + context: . + push: true + tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 0bec053..1ee53af 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.env *.iml .idea/* !.idea/codeStyles