Pin dependencies #96
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Continuous Integration | |
on: | |
push: | |
branches: ['**'] | |
tags: ['**'] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
jobs: | |
build: | |
name: Build and Test | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
scala: [2.13.8] | |
java: [temurin@11] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout current branch (full) | |
uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2 | |
with: | |
fetch-depth: 0 | |
- name: Setup Java (temurin@11) | |
if: matrix.java == 'temurin@11' | |
uses: actions/setup-java@91d3aa4956ec4a53e477c4907347b5e3481be8c9 # v2 | |
with: | |
distribution: temurin | |
java-version: 11 | |
- name: Cache sbt | |
uses: actions/cache@8492260343ad570701412c2f464a5877dc76bace # v2 | |
with: | |
path: | | |
~/.sbt | |
~/.ivy2/cache | |
~/.coursier/cache/v1 | |
~/.cache/coursier/v1 | |
~/AppData/Local/Coursier/Cache/v1 | |
~/Library/Caches/Coursier/v1 | |
key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }} | |
- name: Install node 16 | |
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3 | |
with: | |
node-version: 16 | |
- name: Installing openapi-generator-cli | |
run: npm install -g @openapitools/openapi-generator-cli | |
- name: Generating Code | |
run: sbt ++${{ matrix.scala }} generateCode | |
- name: Build project | |
run: sbt ++${{ matrix.scala }} test | |
- name: Compress target directories | |
run: tar cf targets.tar target generated/target kafka-manager/target client/target project/target | |
- name: Upload target directories | |
uses: actions/upload-artifact@82c141cc518b40d92cc801eee768e7aafc9c2fa2 # v2 | |
with: | |
name: target-${{ matrix.os }}-${{ matrix.scala }}-${{ matrix.java }} | |
path: targets.tar | |
publish: | |
name: Publish Artifacts | |
needs: [build] | |
permissions: | |
id-token: write | |
contents: read | |
packages: write | |
if: github.event_name != 'pull_request' && (github.ref == 'refs/heads/0.1.x' || startsWith(github.ref, 'refs/tags/')) | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
scala: [2.13.8] | |
java: [temurin@11] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout current branch (full) | |
uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2 | |
with: | |
fetch-depth: 0 | |
- name: Setup Java (temurin@11) | |
if: matrix.java == 'temurin@11' | |
uses: actions/setup-java@91d3aa4956ec4a53e477c4907347b5e3481be8c9 # v2 | |
with: | |
distribution: temurin | |
java-version: 11 | |
- name: Cache sbt | |
uses: actions/cache@8492260343ad570701412c2f464a5877dc76bace # v2 | |
with: | |
path: | | |
~/.sbt | |
~/.ivy2/cache | |
~/.coursier/cache/v1 | |
~/.cache/coursier/v1 | |
~/AppData/Local/Coursier/Cache/v1 | |
~/Library/Caches/Coursier/v1 | |
key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }} | |
- name: Download target directories (2.13.8) | |
uses: actions/download-artifact@cbed621e49e4c01b044d60f6c80ea4ed6328b281 # v2 | |
with: | |
name: target-${{ matrix.os }}-2.13.8-${{ matrix.java }} | |
- name: Inflate target directories (2.13.8) | |
run: | | |
tar xf targets.tar | |
rm targets.tar | |
- name: Install node 16 | |
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3 | |
with: | |
node-version: 16 | |
- name: Installing openapi-generator-cli | |
run: npm install -g @openapitools/openapi-generator-cli | |
- name: Get 0.1.x-SNAPSHOTS versionIds | |
id: version | |
if: github.ref == 'refs/heads/0.1.x' | |
uses: castlabs/get-package-version-id-action@61097d3d0b65fa880de6de674e8b70e1fff6730b # v2.0 | |
with: | |
version: 0.1.x-SNAPSHOT | |
- name: Deleting 0.1.x-SNAPSHOTS versions | |
if: ${{ github.ref == 'refs/heads/0.1.x' && steps.version.outputs.ids != '' }} | |
uses: actions/delete-package-versions@000223ef3eaa3505c63d4c610f57ef103bcab46d # v2 | |
with: | |
package-version-ids: ${{ steps.version.outputs.ids }} | |
- name: Regenerating code | |
run: sbt ++${{ matrix.scala }} generateCode | |
- name: Publish project | |
run: sbt ++${{ matrix.scala }} "project client" publish | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build, tag, and push image to Github Packages | |
env: | |
DOCKER_REPO: 'ghcr.io/pagopa' | |
run: 'sbt ++${{ matrix.scala }} docker:publish' |