Merge branch 'development' #71
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: stachebox CI | |
# Only on Development we build snapshots | |
on: | |
push: | |
branches: | |
- development | |
- main | |
env: | |
MODULE_ID: stachebox | |
jobs: | |
############################################# | |
# Tests First baby! We fail, no build :( | |
############################################# | |
tests: | |
uses: ./.github/workflows/tests.yml | |
secrets: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
############################################# | |
# Build Module | |
############################################# | |
build: | |
name: Build & Publish | |
needs: tests | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3.2.0 | |
with: | |
fetch-depth: 0 | |
- name: Setup Java | |
uses: actions/setup-java@v3.9.0 | |
with: | |
distribution: "temurin" | |
java-version: "11" | |
- name: Setup CommandBox | |
uses: Ortus-Solutions/setup-commandbox@v2.0.1 | |
with: | |
forgeboxAPIKey: ${{ secrets.FORGEBOX_TOKEN }} | |
# Focal ships with node 16.x so we need to update to 18 | |
- name: Install Node 18 | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- name: Compile Release Static assets | |
run: | | |
npm install && npm run prod | |
cd $GITHUB_WORKSPACE | |
- name: Setup Environment Variables For Build Process | |
id: current_version | |
run: | | |
echo "VERSION=`cat box.json | jq '.version' -r`" >> $GITHUB_ENV | |
box package set version=@build.version@+@build.number@ | |
# main or snapshot | |
echo "Github Ref is $GITHUB_REF" | |
echo "BRANCH=main" >> $GITHUB_ENV | |
if [ $GITHUB_REF == 'refs/heads/development' ] | |
then | |
echo "BRANCH=development" >> $GITHUB_ENV | |
fi | |
- name: Build ${{ env.MODULE_ID }} | |
run: | | |
box install commandbox-docbox | |
box task run taskfile=build/Build target=run :version=${{ env.VERSION }} :projectName=${{ env.MODULE_ID }} :buildID=${{ github.run_number }} :branch=${{ env.BRANCH }} | |
- name: Upload Build Artifacts | |
if: success() | |
uses: actions/upload-artifact@v3.1.1 | |
with: | |
name: ${{ env.MODULE_ID }} | |
path: | | |
.artifacts/**/* | |
- name: Upload Binaries to S3 | |
uses: jakejarvis/s3-sync-action@master | |
with: | |
args: --acl public-read | |
env: | |
AWS_S3_BUCKET: "downloads.ortussolutions.com" | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_ACCESS_SECRET }} | |
SOURCE_DIR: ".artifacts/${{ env.MODULE_ID }}" | |
DEST_DIR: "ortussolutions/coldbox-modules/${{ env.MODULE_ID }}" | |
- name: Upload API Docs to S3 | |
uses: jakejarvis/s3-sync-action@master | |
with: | |
args: --acl public-read | |
env: | |
AWS_S3_BUCKET: "apidocs.ortussolutions.com" | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_ACCESS_SECRET }} | |
SOURCE_DIR: ".tmp/apidocs" | |
DEST_DIR: "coldbox-modules/${{ env.MODULE_ID }}/${{ env.VERSION }}" | |
- name: Publish To ForgeBox | |
run: | | |
cd .tmp/${{ env.MODULE_ID }} | |
cat box.json | |
box forgebox publish | |
- name: Inform Slack | |
if: ${{ always() }} | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_CHANNEL: coding | |
SLACK_COLOR: ${{ job.status }} # or a specific color like 'green' or '#ff00ff' | |
SLACK_ICON_EMOJI: ":bell:" | |
SLACK_MESSAGE: '${{ env.MODULE_ID }} Built with ${{ job.status }}!' | |
SLACK_TITLE: "${{ env.MODULE_ID }} Build" | |
SLACK_USERNAME: CI | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} |