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 NODE_VERSION: required: true VITE_YFILES_LICENCE_KEY_DEVELOPMENT: required: false VITE_YFILES_LICENCE_KEY_PRODUCTION: required: false jobs: build: runs-on: ubuntu-latest permissions: contents: write packages: write steps: - name: Checkout repo uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: ${{ secrets.NODE_VERSION }} - name: Run NPM install run: | git config --global url.https://github.com/.insteadOf git://github.com/ 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-prod - 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 }} VITE_YFILES_LICENCE_KEY_DEVELOPMENT: ${{ secrets.VITE_YFILES_LICENCE_KEY_DEVELOPMENT }} VITE_YFILES_LICENCE_KEY_PRODUCTION: ${{ secrets.VITE_YFILES_LICENCE_KEY_PRODUCTION }} - name: Prepare and deploy archive run: | PACKAGE_VERSION=$(node -p -e "require('./package.json').version") NAME=$(node -p -e "require('./package.json').name") ARCHIVE_NAME="$NAME-$PACKAGE_VERSION.tar.gz" echo "ARCHIVE_NAME=$FILENAME" >> $GITHUB_ENV 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 \ --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: Upload artifact uses: actions/upload-artifact@v3 with: name: ${{ env.ARCHIVE_NAME }} path: ${{ env.ARCHIVE_NAME }} retention-days: 5