update build task #37
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: Logstash | |
# Only on Development we build snapshots | |
on: | |
push: | |
branches: | |
- development | |
- main | |
env: | |
MODULE_ID: logstash | |
jobs: | |
tests: | |
uses: ./.github/workflows/tests.yml | |
secrets: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
############################################# | |
# Build Logstash | |
############################################# | |
build: | |
name: Build & Publish | |
runs-on: ubuntu-20.04 | |
needs: tests | |
steps: | |
- name: Checkout Repository | |
uses: actions/[email protected] | |
with: | |
fetch-depth: 0 | |
- name: Setup Java | |
uses: actions/[email protected] | |
with: | |
distribution: "temurin" | |
java-version: "11" | |
- name: Setup CommandBox | |
uses: Ortus-Solutions/[email protected] | |
with: | |
forgeboxAPIKey: ${{ secrets.FORGEBOX_TOKEN }} | |
- name: Setup Environment Variables For Build Process | |
id: current_version | |
run: | | |
echo "VERSION=`cat box.json | jq '.version' -r`" >> $GITHUB_ENV | |
box package set [email protected]@[email protected]@ | |
# 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: Update changelog [unreleased] with latest version | |
uses: thomaseizinger/[email protected] | |
if: github.ref == 'refs/heads/main' | |
with: | |
changelogPath: ./changelog.md | |
tag: v${{ env.VERSION }} | |
- name: Build ${{ env.MODULE_ID }} | |
run: | | |
cd test-harness && box install && cd ../ | |
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: Commit Changelog To Master | |
uses: EndBug/[email protected] | |
if: github.ref == 'refs/heads/main' | |
with: | |
author_name: Github Actions | |
author_email: [email protected] | |
message: 'Finalized changelog for v${{ env.VERSION }}' | |
add: changelog.md | |
- name: Tag Version | |
uses: rickstaa/[email protected] | |
if: github.ref == 'refs/heads/main' | |
with: | |
tag: "v${{ env.VERSION }}" | |
force_push_tag: true | |
message: "Latest Release v${{ env.VERSION }}" | |
- name: Upload Build Artifacts | |
if: success() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.MODULE_ID }} | |
path: | | |
.artifacts/**/* | |
changelog.md | |
- 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 ${GITHUB_WORKSPACE}/.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 }} | |
########################################################################################## | |
# Prep Next Release | |
########################################################################################## | |
prep_next_release: | |
name: Prep Next Release | |
if: github.ref == 'refs/heads/main' | |
runs-on: ubuntu-20.04 | |
needs: [ build ] | |
steps: | |
# Checkout development | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: | |
ref: development | |
- name: Setup CommandBox | |
uses: Ortus-Solutions/[email protected] | |
with: | |
forgeboxAPIKey: ${{ secrets.FORGEBOX_TOKEN }} | |
- name: Download build artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{ env.MODULE_ID }} | |
path: .tmp | |
# Copy the changelog to the development branch | |
- name: Copy Changelog | |
run: | | |
cp .tmp/changelog.md changelog.md | |
# Bump to next version | |
- name: Bump Version | |
run: | | |
box bump --patch --!TagVersion | |
# Commit it back to development | |
- name: Commit Version Bump | |
uses: EndBug/[email protected] | |
with: | |
author_name: Github Actions | |
author_email: [email protected] | |
message: 'Version bump [ci skip]' | |
add: | | |
box.json | |
changelog.md |