gitea-actions/.github/workflows/frontend-build-test.yml
Marko Frankovic 3a093ca95d Cleanup
2025-03-13 07:42:52 +01:00

77 lines
2.8 KiB
YAML

name: Build test
on:
workflow_call:
secrets:
NPM_NEXUS_AUTH:
required: true
AWS_ACCESS_KEY_ID:
required: true
AWS_SECRET_ACCESS_KEY:
required: true
ACTIVE_MQ_ADMIN_PASSWORD:
required: true
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
packages: write
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup Node 21
uses: actions/setup-node@v4
with:
node-version: 21
- name: Set current date as env variable
run: echo "NOW=$(date +'%Y%m%d%H%M%S')" >> $GITHUB_ENV
- name: Run NPM install
run: |
echo 'https://devops.pravilanovait.hr/nexus/repository/npm-proxy/
//devops.pravilanovait.hr/nexus/repository/npm-proxy/:_auth='"$NPM_NEXUS_AUTH" > ~/.npmrc
npm config set registry https://devops.pravilanovait.hr/nexus/repository/npm-proxy/
cat ~/.npmrc
npm install
env:
NPM_NEXUS_AUTH: ${{ secrets.NPM_NEXUS_AUTH }}
- name: Run NPM build
run: npm run build
- name: Setup AWS Cli
run: |
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip -q awscliv2.zip
./aws/install
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Prepare and deploy archive
run: |
PACKAGE_VERSION=$(node -p -e "require('./package.json').version")
NAME=$(node -p -e "require('./package.json').name")
FILENAME="$NAME-$PACKAGE_VERSION-$NOW.tar.gz"
tar -czvf $FILENAME dist
export ASSET_SHA256=$(sha256sum $FILENAME | awk '{print $1;}')
aws codeartifact publish-package-version --region eu-west-1 --domain pravila --domain-owner 867459752380 --repository pravila-frontend \
--format generic --namespace hr.pravila --package $NAME --package-version $PACKAGE_VERSION-$NOW \
--asset-content $FILENAME --asset-name $FILENAME \
--asset-sha256 $ASSET_SHA256
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Push build finished event
run: |
VERSION=$(node -p -e "require('./package.json').version")-$NOW
NAME=$(node -p -e "require('./package.json').name")
echo "Triggering deploy for $NAME $VERSION"
curl -XPOST -d 'body={"namespace":"hr.pravila","artifact":"'$NAME'","version":"'$VERSION'"}' -u admin:$ACTIVE_MQ_ADMIN_PASSWORD https://devops.pravilanovait.hr/activemq-api/message?destination=queue://builds
env:
ACTIVE_MQ_ADMIN_PASSWORD: ${{ secrets.ACTIVE_MQ_ADMIN_PASSWORD }}