Skip to content

feat: add init file #15

feat: add init file

feat: add init file #15

Workflow file for this run

name: CI
on:
push:
branches:
- master
tags:
- "*.*.*" # semver, will override latest
- "*-preview" # preview, won't override latest
pull_request:
branches:
- master
workflow_dispatch: # Allow manual trigger
permissions:
id-token: write # This is required for requesting the AWS JWT
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- id: nvm
run: echo ::set-output name=NVMRC::$(cat .nvmrc)
- uses: actions/setup-node@v3
with:
node-version: "${{ steps.nvm.outputs.NVMRC }}"
cache: yarn
- run: yarn install --frozen-lockfile
- name: Lint sources
run: |
make lint
yarn lint
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- id: nvm
run: echo ::set-output name=NVMRC::$(cat .nvmrc)
- uses: actions/setup-node@v3
with:
node-version: "${{ steps.nvm.outputs.NVMRC }}"
cache: yarn
- name: Setup Go environment
uses: actions/setup-go@v4
with:
go-version: "^1.21.1"
- run: yarn install --frozen-lockfile
- name: Execute tests
run: |
make test
make test-integration
yarn test
make coverage
- name: SonarCloud Scan
uses: sonarsource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- id: extract_ref
run: echo ::set-output name=GIT_REF::$(echo ${GITHUB_REF##*/})
- id: nvm
run: echo ::set-output name=NVMRC::$(cat .nvmrc)
- uses: actions/setup-node@v3
with:
node-version: "${{ steps.nvm.outputs.NVMRC }}"
cache: yarn
- name: Setup Go environment
uses: actions/setup-go@v4
with:
go-version: "^1.21.1"
- run: yarn install --frozen-lockfile
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: us-east-1 # ECR Public can only be logged into from the us-east-1 region
role-to-assume: arn:aws:iam::202662887508:role/ecr-smocker
role-session-name: githubActions
- name: Login to Amazon ECR
id: login-ecr-public
uses: aws-actions/amazon-ecr-login@v2
with:
registry-type: public
mask-password: "true"
- name: Build
env:
ECR_REGISTRY: ${{ steps.login-ecr-public.outputs.registry }}
ECR_REPOSITORY: qonto/smocker
IMAGE_TAG: ben
run: |
make VERSION=${{ steps.extract_ref.outputs.GIT_REF }} RELEASE=1 release
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
# make VERSION=${{ steps.extract_ref.outputs.GIT_REF }} build-docker
# make VERSION=${{ steps.extract_ref.outputs.GIT_REF }} start-docker
# - if: startsWith(github.ref, 'refs/tags/')
# uses: actions/upload-artifact@v3
# with:
# name: smocker-bin
# path: ./build/smocker.tar.gz
# deploy:
# needs: [lint, test, build]
# if: startsWith(github.ref, 'refs/tags/')
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - id: extract_ref
# run: echo ::set-output name=GIT_REF::$(echo ${GITHUB_REF##*/})
# - uses: actions/download-artifact@v3
# with:
# name: smocker-bin
# path: ./build
# - run: cd build && tar -xvf smocker.tar.gz
# - name: Docker login
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKER_USERNAME }}
# password: ${{ secrets.DOCKER_PASSWORD }}
# - name: Set up QEMU
# uses: docker/setup-qemu-action@v3
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
# with:
# platforms: linux/amd64,linux/arm64
# - name: Deploy on Docker registry
# run: make VERSION=${{ steps.extract_ref.outputs.GIT_REF }} deploy-docker
# - name: Deploy on GitHub releases
# uses: softprops/action-gh-release@v1
# with:
# files: build/smocker.tar.gz
# env:
# GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}