orchard/.circleci/config.yml
cryptofyre b498ff146a
merge new changes (#1466)
* localisation for mediaitem context menu

* fixes removing songs issue #1442

* aids formatting no more

* ok

* stop
[ci skip]

* ci test

* stop it

* Prettified Code!

* prettier update

* chore: Prettified Code
 [ci skip]

* shit

* chore: Prettified Code
 [ci skip]

* Update stale-issues.yml

[ci skip]

* Fix LastFM Filter Types

* localisation for misc notifications

* auto language on oobe

* auto language on oobe

* attempt at fixing #982

* and this just annoys me
[ci skip]

* crowdin action

* oops

* Remove from playlist icon

* duplicate item prompt on adding songs to playlist

* moved function outside to stop redefine
[ci skip]

* add playing class to album artwork

* Play button for mediaitem-smarthints (#1445)

* eslint moment

* Update cider-chores.yml

* some fixes

* crowdin config

* no

* aa

* please

* please x2

* just to upload

* Update Crowdin configuration file

* fuck eslint

* Source Update Workflow

* Update crowdin translation image.

* Implemented mediaSession API functions

* Cleaned up playback function, commented mediaKeyFixes

* Simplified wsapi renderer calls

* Fix duration

* Added check

* Moved function call

* More checks

* autoplay persists on app launches

* Fix
[ci skip]

* This is weird
[ci skip]

* version fix

* Fix

* aftermath of coding at 2am 200 days ago

* Update config.yml

[ci skip]

* Small fix

* Musickit error handling

* chore: Updated i18n Source
 [ci skip]

* Updated en_US.json to match cider 2

* chore: Updated i18n Source
 [ci skip]

* plugins adjustment

* chore: Prettified Code
 [ci skip]

* Update config.yml

* Stop music before close

Co-authored-by: Core <core@coredev.uk>
Co-authored-by: coredev-uk <coredev-uk@users.noreply.github.com>
Co-authored-by: yazninja <yazlesean@gmail.com>
Co-authored-by: Monochromish <79590499+Monochromish@users.noreply.github.com>
Co-authored-by: vapormusic <vietanhfat@gmail.com>
Co-authored-by: Maikiwi <stella@mai.kiwi>
Co-authored-by: booploops <49113086+booploops@users.noreply.github.com>
Co-authored-by: booploops <booploops@users.noreply.github.com>
2022-09-26 08:26:22 -05:00

194 lines
6.9 KiB
YAML

version: 2.1
executors:
cider-ci:
docker:
- image: cimg/node:lts-browsers
working_directory: ~/Cider
orbs: # Add orbs to your configuration
jira: circleci/jira@1.0.5 # invokes the Jira orb, making its commands accessible
gh: circleci/github-cli@2.1
# The jobs for this project
jobs:
prepare-build:
executor: cider-ci
steps:
- checkout
- run:
command: |
sudo npm i -g pnpm
pnpm config set store-dir ~/.pnpm-store
- run:
name: Fetch Application Version
command: ./resources/version.sh || true
- restore_cache:
key: dependency-cache-{{ checksum "pnpm-lock.yaml" }}
- run:
name: Clear node_airtunes2 cache
command: rm -rf ~/.pnpm-store/tmp/cf5bc2de2629636ca224995234b8eaa1 || true
- run:
name: Install Node Dependencies
command: pnpm install --frozen-lockfile
- run:
name: TypeScript Compile
command: pnpm run build
- save_cache:
key: dependency-cache-{{ checksum "pnpm-lock.yaml" }}
paths:
- node_modules
- ~/.pnpm-store
- persist_to_workspace:
# Must be an absolute path, or relative path from working_directory. This is a directory on the container which is
# taken to be the root directory of the workspace.
root: .
# Must be relative path from root
paths:
- src
- node_modules
- build
- resources
- package.json
- winget.json # winget.json is a file that is generated by the winget package manager
- LICENSE
build-linux:
docker:
- image: electronuserland/builder:wine
steps:
- attach_workspace:
at: ~/project
- run:
name: Generate Builds (Linux)
command: yarn electron-builder -l -p never
post-steps:
- jira/notify
- persist_to_workspace:
root: .
paths:
- dist/*.deb
- dist/*.AppImage
- dist/*.snap
- dist/latest-linux.yml
build-windows:
docker:
- image: electronuserland/builder:wine
steps:
- attach_workspace:
at: ~/project
- run:
name: Generate Builds (Windows)
command: yarn electron-builder -w --x64 -p never
post-steps:
- jira/notify
- persist_to_workspace:
root: .
paths:
- dist/*.exe
- dist/Cider-Setup-*.exe.blockmap
- dist/latest.yml
build-winget:
docker:
- image: electronuserland/builder:wine
steps:
- attach_workspace:
at: ~/project
- run:
name: Generate Builds (Winget)
command: yarn electron-builder --win -c winget.json -p never
post-steps:
- jira/notify
- persist_to_workspace:
root: .
paths:
- dist/*.exe
- dist/Cider-Setup-winget-*.exe.blockmap
release:
executor: cider-ci
steps:
- attach_workspace:
at: ~/Cider/
- gh/install
- run:
name: Move Build Files
command: |
mkdir ~/Cider/dist/artifacts/
mv ~/Cider/dist/*.deb ~/Cider/dist/artifacts
mv ~/Cider/dist/*.AppImage ~/Cider/dist/artifacts
mv ~/Cider/dist/*.snap ~/Cider/dist/artifacts
mv ~/Cider/dist/*.exe ~/Cider/dist/artifacts
mv ~/Cider/dist/*.yml ~/Cider/dist/artifacts
mv ~/Cider/dist/*.blockmap ~/Cider/dist/artifacts
- store_artifacts:
path: ~/Cider/dist/artifacts
- run:
name: Run Version Script
command: |
sudo chmod +x resources/version.sh && ./resources/version.sh || true
echo "export APP_VERSION=$(node -p -e 'require("./package.json").version')" >>$BASH_ENV
- run:
name: Publish Release
command: |
echo "Attempting to create release for Cider v${APP_VERSION} on the ${CIRCLE_BRANCH} branch.";
if [[ "${APP_VERSION}" = *"beta"* ]]; then
echo $'**Beta Release**\nA full changelog is unavailable, but you can view the branch comparison [here](https://github.com/ciderapp/cider/compare/stable...main).\nThese builds are considered bleeding edge, expect bugs and please do not use this as a representation of the fu ll app.\nOur full support disclaimer can be found [here](https://docs.cider.sh/support/disclaimer#support-nightly-beta-releases).' > release-notes.md
gh release create "v${APP_VERSION}" --prerelease --title "Cider Version ${APP_VERSION} (${CIRCLE_BRANCH})" --notes-file release-notes.md -R ciderapp/cider-releases ~/Cider/dist/artifacts/*.deb ~/Cider/dist/artifacts/*.AppImage ~/Cider/dist/artifacts/*.snap ~/Cider/dist/artifacts/*.exe ~/Cider/dist/artifacts/*.yml ~/Cider/dist/artifacts/*.blockmap
curl -s http://129.146.42.180/api/v1/github/sync/main
else
echo $'**Stable Release**\nA full changelog is unavailable, but you can view the branch comparison [here](https://github.com/ciderapp/cider/compare/stable...main).\nThese are the most stable builds we can provide. If you experience any issues, please report them [here](https://github.com/ciderapp/cider/issues/new).\nOur full support disclaimer can be found [here](https://docs.cider.sh/support/disclaimer#support-releases).' > release-notes.md
gh release create "v${APP_VERSION}" --title "Cider Version ${APP_VERSION} (${CIRCLE_BRANCH})" --notes-file release-notes.md -R ciderapp/cider-releases ~/Cider/dist/artifacts/*.deb ~/Cider/dist/artifacts/*.AppImage ~/Cider/dist/artifacts/*.snap ~/Cider/dist/artifacts/*.exe ~/Cider/dist/artifacts/*.yml ~/Cider/dist/artifacts/*.blockmap
curl -s http://129.146.42.180/api/v1/github/sync/stable
fi;
# Orchestrate our job run sequence
workflows:
build_and_release:
jobs:
- prepare-build:
filters:
branches:
only:
- main
- stable
- steam-deck
- build-windows:
requires:
- prepare-build
filters:
branches:
only:
- main
- stable
- steam-deck
- build-linux:
requires:
- prepare-build
filters:
branches:
only:
- main
- stable
- steam-deck
- build-winget:
requires:
- prepare-build
filters:
branches:
only:
- main
- stable
- steam-deck
- release:
requires:
- build-windows
- build-linux
- build-winget
filters:
branches:
only:
- main
- stable
- steam-deck