diff --git a/.circleci/config.yml b/.circleci/config.yml index 83d25acc..62dc1183 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,21 +1,18 @@ version: 2.1 - -executors: - cider-ci: - docker: - - image: circleci/node:16 - working_directory: ~/Cider - orbs: # adds orbs to your configuration jira: circleci/jira@1.0.5 # invokes the Jira orb, making its commands accessible - -# The jobs for this project +branches: + only: + - main + - develop jobs: - prepare-build: - executor: cider-ci + build: + working_directory: ~/Cider + docker: + - image: circleci/node:16 + steps: - checkout - - run: ls -la - run: name: Set App Version command: echo "export APP_VERSION=$(grep '"version":.*' package.json | cut -d '"' -f 4 | head -1)" >> $BASH_ENV @@ -35,144 +32,50 @@ jobs: paths: - ~/.cache/yarn - run: - name: TypeScript Compile - command: yarn build - - 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: - - node_modules - - build - - resources - - yarn.lock - - package.json - - winget.json # winget.json is a file that is generated by the winget package manager - - LICENSE - - license.txt - - build-windows: - executor: cider-ci - steps: - - attach_workspace: - at: ~/Cider - - run: - name: Install Windows System Build Dependencies + name: Install system build dependencies command: | sudo apt-get update -y + curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null sudo apt-get install -y dpkg fakeroot wine64 sudo dpkg --add-architecture i386 sudo apt-get update -y sudo apt-get install -y wine32 + sudo apt install -y gh - run: name: Fix Versioning and Add Channel command: yarn circle:script - 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/latest.yml - - build-linux: - executor: cider-ci - steps: - - attach_workspace: - at: ~/Cider - - run: - name: Fix Versioning and Add Channel - command: yarn circle:script + name: TypeScript Compile + command: yarn build - 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-winget: - executor: cider-ci - steps: - - attach_workspace: - at: ~/Cider - run: - name: Install Windows System Build Dependencies - command: | - sudo apt-get update -y - sudo apt-get install -y dpkg fakeroot wine64 - sudo dpkg --add-architecture i386 - sudo apt-get update -y - sudo apt-get install -y wine32 - - run: - name: Fix Versioning and Add Channel - command: yarn circle:script + name: Generate Builds (Windows) + command: yarn electron-builder -w --x64 -p never + post-steps: + - jira/notify - 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/*.yml - - release: - executor: cider-ci - steps: - - attach_workspace: - at: ~/Cider/ - - run: - name: Installing GitHub Command Line Interface - command: | - sudo apt-get update -y - curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg - echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null - sudo apt-get update -y - sudo apt install -y gh - run: name: Move Build Files command: | - mkdir ~/Cider/dist/artifacts/ - mv ~/Cider/dist/*.exe ~/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/*.yml ~/Cider/dist/artifacts - mv ~/Cider/dist/*.blockmap ~/Cider/dist/artifacts + mkdir ~/Cider/dist/artifacts/ + mv ~/Cider/dist/*.exe ~/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/*.yml ~/Cider/dist/artifacts + mv ~/Cider/dist/*.blockmap ~/Cider/dist/artifacts - store_artifacts: - path: ~/Cider/dist/artifacts + path: ~/Cider/dist/artifacts - run: name: Publish Release command: | - gh release create "v${APP_VERSION}.${CIRCLE_BUILD_NUM}" --title "Cider Version ${APP_VERSION} - Build ${CIRCLE_BUILD_NUM} (${CIRCLE_BRANCH})" --generate-notes -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 - -# Orchestrate our job run sequence -workflows: - build_and_release: - jobs: - - prepare-build - - build-windows: - requires: - - prepare-build - - build-linux: - requires: - - prepare-build - - build-winget: - requires: - - prepare-build - - release: - requires: - - build-windows - - build-linux - - build-winget + gh release create "v${APP_VERSION}.${CIRCLE_BUILD_NUM}" --title "Cider Version ${APP_VERSION} - Build ${CIRCLE_BUILD_NUM} (${CIRCLE_BRANCH})" --generate-notes -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