push-master.yml 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. name: Master
  2. on:
  3. push:
  4. branches:
  5. - master
  6. jobs:
  7. # publish to gh-pages (& IPFS when a release is detected)
  8. www:
  9. strategy:
  10. matrix:
  11. step: ['build:release:www']
  12. name: ${{ matrix.step }}
  13. if: "! startsWith(github.event.head_commit.message, '[CI Skip]') && github.repository == 'polkadot-js/apps'"
  14. runs-on: ubuntu-latest
  15. steps:
  16. - uses: actions/checkout@v1
  17. with:
  18. token: ${{ secrets.GH_PAT }}
  19. - name: ${{ matrix.step }}
  20. env:
  21. CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
  22. CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }}
  23. GH_PAGES_SRC: packages/apps/build
  24. GH_PAT: ${{ secrets.GH_PAT }}
  25. GH_RELEASE_GITHUB_API_TOKEN: ${{ secrets.GH_PAT }}
  26. NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
  27. PINATA_API_KEY: ${{ secrets.PINATA_API_KEY }}
  28. PINATA_SECRET_KEY: ${{ secrets.PINATA_SECRET_KEY }}
  29. run: |
  30. yarn install --immutable | grep -v 'YN0013'
  31. yarn ${{ matrix.step }}
  32. # only run on "CI skip", i.e. when the actual version has been bumped to release/stable
  33. docker:
  34. name: docker
  35. if: "startsWith(github.event.head_commit.message, '[CI Skip] release/stable') && github.repository == 'polkadot-js/apps'"
  36. runs-on: ubuntu-latest
  37. steps:
  38. - uses: actions/checkout@v1
  39. - name: docker
  40. env:
  41. DOCKER_PASS: ${{ secrets.DOCKER_PASS }}
  42. run: |
  43. ./scripts/docker.sh
  44. # only run on "CI skip", i.e. when the actual version has been bumped to release/stable
  45. electron:
  46. strategy:
  47. matrix:
  48. os: [macos-latest, ubuntu-latest, windows-latest]
  49. runs-on: ${{ matrix.os }}
  50. if: "startsWith(github.event.head_commit.message, '[CI Skip] release/stable') && github.repository == 'polkadot-js/apps'"
  51. name: ${{ matrix.os }}
  52. steps:
  53. - uses: actions/checkout@v1
  54. with:
  55. token: ${{ secrets.GH_PAT }}
  56. - name: Prepare for app notarization (macOS)
  57. if: startsWith(matrix.os, 'macos')
  58. # Import Apple API key for app notarization on macOS
  59. run: |
  60. mkdir -p ~/private_keys/
  61. echo '${{ secrets.API_KEY }}' > ~/private_keys/AuthKey_${{ secrets.API_KEY_ID }}.p8
  62. - name: Build/release Electron app
  63. uses: samuelmeuli/action-electron-builder@v1
  64. with:
  65. # Base64-encoded code signing certificate for macOS
  66. mac_certs: ${{ secrets.MAC_CERTS }}
  67. # Password for decrypting `mac_certs`
  68. mac_certs_password: ${{ secrets.MAC_CERTS_PASSWORD }}
  69. # Base64-encoded code signing certificate for Windows
  70. windows_certs: ${{ secrets.WINDOWS_CERTS }}
  71. # Password for decrypting `windows_certs`
  72. windows_certs_password: ${{ secrets.WINDOWS_CERTS_PASSWORD }}
  73. # GitHub token, automatically provided to the action
  74. # (No need to define this secret in the repo settings)
  75. github_token: ${{ secrets.GITHUB_TOKEN }}
  76. build_script_name: build:release:electron
  77. # If the commit is tagged with a version (e.g. "v1.0.0"),
  78. # release the app after building
  79. release: ${{ startsWith(github.ref, 'refs/tags/v') }}
  80. env:
  81. # macOS notarization API key
  82. API_KEY_ID: ${{ secrets.API_KEY_ID }}
  83. API_KEY_ISSUER_ID: ${{ secrets.API_KEY_ISSUER_ID }}
  84. # dummy, GH actions fails outright when all steps are skipped (like it can be above)
  85. dummy:
  86. runs-on: ubuntu-latest
  87. steps:
  88. - name: dummy
  89. run: |
  90. echo "Dummy skip step"