This is a an open-source project that serves as both website as well as a backend for Slack app that synchronizes Spotify song to your Slack status.
My Workflow
GitHub workflow master.yml:
- Workflow sets up appropriate environment using actions/checkout and actions/setup-java.
- After that the gradle packages are cached via actions/cache@v2
- Gradle properties file is read via christian-draeger/read-properties, so that final deployment file can inherit proper semantic version
- Once the build is finished and the final zip file is generated, artifact is deployed to AWS beanstalk via einaregilsson/beanstalk-deploy. AWS credentials are passed via Github secrets
As a result, workflow deploys a new version of the application to AWS beanstalk as soon as a change is detected on master branch.
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11.0.4
- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
- name: Read baseVersion from gradle.properties
id: read_artifact_version
uses: christian-draeger/read-properties@1.0.1
with:
path: './gradle.properties'
property: 'baseVersion'
- name: Generate deployment package
run: zip -j spotmystatus.zip backend/build/libs/spotmystatus-${{ steps.read_artifact_version.outputs.value }}.jar backend/Procfile && cd backend && zip -r ../spotmystatus.zip .ebextensions .platform
- name: Deploy to AWS Beanstalk
uses: einaregilsson/beanstalk-deploy@v13
with:
aws_access_key: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
application_name: SpotMyStatus
environment_name: spotmystatus-environment
version_label: ${{ steps.read_artifact_version.outputs.value }}-${{ github.run_id }}-${{ github.run_number }}
use_existing_version_if_available: false
wait_for_environment_recovery: 180
region: eu-central-1
deployment_package: spotmystatus.zip
Submission Category:
Wacky Wildcards: automate build and deployment of an artifact to AWS Beanstalk
Link to workflow yaml file
Workflow yaml file for master branch
Repository
giorgimode / SpotMyStatus
Slack App updating user's status with currently playing song from Spotify
SpotMyStatus
Slack App updating user's status with currently playing song from Spotify
App Home page
Bugs, Feature Requests
Feel free to create a support ticket via home page or to add a ticket directly in the issue tracker
SpotMyStatus app commands
Following parameters can be passed to /spotme
command in Slack
- /spotme pause
- /spotme play
- /spotme purge
- /spotme help
SpotMyStatus customization
Customize your experience by running /spotme
command or by accessing app Home Tab
NOTE: The syncing hours feature displayed here uses Slack's time picker element, which is a beta feature and not supported on apps in Slack App Directory. As soon as this element becomes official, syncing hours field will be reactivated.
Features
- User can pause/play status syncing
- User can choose to sync music and/or podcasts (default both)
- User can define emojis to rotate from when app sets a status. Emojis not present in the workspace will not be…
Additional Resources / Info
- Website that running on AWS beanstalk and is deployed via this workflow: https://spotmystatus.giomo.de/
- Slack app: https://slack.com/apps/A01EZN95XD5-spotmystatus?tab=more_info
Top comments (0)