name: Release Core on: push: tags: - core@* env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_REF: ${{ github.ref }} GITHUB_SHA: ${{ github.sha }} NPM_CONFIG_TARGET: 11.2.3 NPM_CONFIG_DISTURL: https://electronjs.org/headers NPM_CONFIG_RUNTIME: electron jobs: test: runs-on: ${{ matrix.os }} strategy: fail-fast: true matrix: os: [ macos-latest, windows-latest, ubuntu-latest ] steps: - name: Checkout branch uses: actions/checkout@v1 - name: Read Node version from .nvmrc run: echo "##[set-output name=NVMRC;]$(cat .nvmrc)" id: nvm - uses: actions/setup-node@v1 with: node-version: ${{ steps.nvm.outputs.NVMRC }} - name: Bootstrap packages run: npm run bootstrap - name: Run tests run: npm test npm: needs: [ test ] name: npm runs-on: ubuntu-latest steps: - name: Checkout branch uses: actions/checkout@v1 - name: Read Node version from .nvmrc run: echo "##[set-output name=NVMRC;]$(cat .nvmrc)" id: nvm - uses: actions/setup-node@v1 with: node-version: ${{ steps.nvm.outputs.NVMRC }} - name: Bootstrap packages run: npm run bootstrap - name: Release NPM packages run: | npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN} npm run release env: NPM_TOKEN: ${{ secrets.NPM_TOKEN}} Windows: needs: [ npm ] name: Windows runs-on: windows-2016 steps: - name: Checkout branch uses: actions/checkout@v1 - name: Read Node version from .nvmrc run: echo "##[set-output name=NVMRC;]$(cat .nvmrc)" id: nvm - uses: actions/setup-node@v1 with: node-version: ${{ steps.nvm.outputs.NVMRC }} - name: Bootstrap packages run: npm run bootstrap - name: Release app run: npm run app-release env: CSC_LINK: ${{ secrets.DESIGNER_WINDOWS_CSC_LINK }} CSC_KEY_PASSWORD: ${{ secrets.DESIGNER_WINDOWS_CSC_KEY_PASSWORD }} Mac: needs: [ npm ] name: Mac runs-on: macos-latest steps: - name: Checkout branch uses: actions/checkout@v1 - name: Read Node version from .nvmrc run: echo "##[set-output name=NVMRC;]$(cat .nvmrc)" id: nvm - uses: actions/setup-node@v1 with: node-version: ${{ steps.nvm.outputs.NVMRC }} - name: Bootstrap packages run: npm run bootstrap - name: Release app run: npm run app-release env: APPLE_ID: ${{ secrets.DESIGNER_APPLE_ID }} APPLE_ID_PASSWORD: ${{ secrets.DESIGNER_APPLE_ID_PASSWORD }} CSC_LINK: ${{ secrets.DESIGNER_MAC_CSC_LINK }} CSC_KEY_PASSWORD: ${{ secrets.DESIGNER_MAC_CSC_KEY_PASSWORD }} Linux: needs: [ npm ] name: Linux runs-on: ubuntu-latest steps: - name: Install Snapcraft run: | sudo snap install snapcraft --classic echo "${{ secrets.SNAPCRAFT_LOGIN_FILE }}" > snapcraft.txt && snapcraft login --with snapcraft.txt - name: Checkout branch uses: actions/checkout@v1 - name: Read Node version from .nvmrc run: echo "##[set-output name=NVMRC;]$(cat .nvmrc)" id: nvm - uses: actions/setup-node@v1 with: node-version: ${{ steps.nvm.outputs.NVMRC }} - name: Bootstrap packages run: npm run bootstrap - name: Release app run: npm run app-release env: BUILD_TARGETS: AppImage,deb,tar.gz,rpm,snap