From d59a181879a512a642dbef78b06b20e2743031a4 Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Thu, 23 Mar 2023 09:59:09 -0400 Subject: [PATCH] chore(ci): update release scripts (#27008) --- .github/workflows/release-ionic.yml | 212 ++++++++++++++++++++++++++++ 1 file changed, 212 insertions(+) create mode 100644 .github/workflows/release-ionic.yml diff --git a/.github/workflows/release-ionic.yml b/.github/workflows/release-ionic.yml new file mode 100644 index 00000000000..e29dfb83c63 --- /dev/null +++ b/.github/workflows/release-ionic.yml @@ -0,0 +1,212 @@ +name: 'Release Ionic' + +on: + workflow_call: + inputs: + version: + description: 'The type of version to release.' + type: string + required: true + tag: + description: 'The tag to publish to NPM.' + type: string + required: true + secrets: + NPM_TOKEN: + required: true + +jobs: + release-core: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: ./.github/workflows/actions/publish-npm + with: + scope: '@ionic/core' + tag: ${{ inputs.tag }} + version: ${{ inputs.version }} + working-directory: 'core' + token: ${{ secrets.NPM_TOKEN }} + - name: Cache Built @ionic/core + uses: ./.github/workflows/actions/upload-archive + with: + name: ionic-core + output: core/CoreBuild.zip + paths: core/dist core/components core/css core/hydrate core/loader core/src/components.d.ts + - name: Cache Built @ionic/docs + uses: ./.github/workflows/actions/upload-archive + with: + name: ionic-docs + output: docs/DocsBuild.zip + paths: docs/core.json docs/core.d.ts + + release-docs: + needs: [release-core] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Restore @ionic/docs built cache + uses: ./.github/workflows/actions/download-archive + with: + name: ionic-docs + path: ./docs + filename: DocsBuild.zip + - uses: ./.github/workflows/actions/publish-npm + with: + scope: '@ionic/docs' + tag: ${{ inputs.tag }} + version: ${{ inputs.version }} + working-directory: 'docs' + token: ${{ secrets.NPM_TOKEN }} + + release-angular: + needs: [release-core] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Restore @ionic/core built cache + uses: ./.github/workflows/actions/download-archive + with: + name: ionic-core + path: ./core + filename: CoreBuild.zip + - uses: ./.github/workflows/actions/publish-npm + with: + scope: '@ionic/angular' + tag: ${{ inputs.tag }} + version: ${{ inputs.version }} + working-directory: 'angular' + folder: './dist' + token: ${{ secrets.NPM_TOKEN }} + - name: Cache Built @ionic/angular + uses: ./.github/workflows/actions/upload-archive + with: + name: ionic-angular + output: ./angular/AngularBuild.zip + paths: ./angular/dist + + release-react: + needs: [release-core] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Restore @ionic/core built cache + uses: ./.github/workflows/actions/download-archive + with: + name: ionic-core + path: ./core + filename: CoreBuild.zip + - uses: ./.github/workflows/actions/publish-npm + with: + scope: '@ionic/react' + tag: ${{ inputs.tag }} + version: ${{ inputs.version }} + working-directory: 'packages/react' + token: ${{ secrets.NPM_TOKEN }} + - name: Cache Built @ionic/react + uses: ./.github/workflows/actions/upload-archive + with: + name: ionic-react + output: packages/react/ReactBuild.zip + paths: packages/react/dist packages/react/css + + release-vue: + needs: [release-core] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Restore @ionic/core built cache + uses: ./.github/workflows/actions/download-archive + with: + name: ionic-core + path: ./core + filename: CoreBuild.zip + - uses: ./.github/workflows/actions/publish-npm + with: + scope: '@ionic/vue' + tag: ${{ inputs.tag }} + version: ${{ inputs.version }} + working-directory: 'packages/vue' + token: ${{ secrets.NPM_TOKEN }} + - name: Cache Built @ionic/vue + uses: ./.github/workflows/actions/upload-archive + with: + name: ionic-vue + output: packages/vue/VueBuild.zip + paths: packages/vue/dist packages/vue/css + + release-angular-server: + needs: [release-angular] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Restore @ionic/core built cache + uses: ./.github/workflows/actions/download-archive + with: + name: ionic-core + path: ./core + filename: CoreBuild.zip + - name: Restore @ionic/angular built cache + uses: ./.github/workflows/actions/download-archive + with: + name: ionic-angular + path: ./angular + filename: AngularBuild.zip + - uses: ./.github/workflows/actions/publish-npm + with: + scope: '@ionic/angular-server' + tag: ${{ inputs.tag }} + version: ${{ inputs.version }} + working-directory: 'packages/angular-server' + folder: './dist' + token: ${{ secrets.NPM_TOKEN }} + + release-react-router: + needs: [release-react] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Restore @ionic/core built cache + uses: ./.github/workflows/actions/download-archive + with: + name: ionic-core + path: ./core + filename: CoreBuild.zip + - name: Restore @ionic/react built cache + uses: ./.github/workflows/actions/download-archive + with: + name: ionic-react + path: ./packages/react + filename: ReactBuild.zip + - uses: ./.github/workflows/actions/publish-npm + with: + scope: '@ionic/react-router' + tag: ${{ inputs.tag }} + version: ${{ inputs.version }} + working-directory: 'packages/react-router' + token: ${{ secrets.NPM_TOKEN }} + + release-vue-router: + needs: [release-vue] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Restore @ionic/core built cache + uses: ./.github/workflows/actions/download-archive + with: + name: ionic-core + path: ./core + filename: CoreBuild.zip + - name: Restore @ionic/vue built cache + uses: ./.github/workflows/actions/download-archive + with: + name: ionic-vue + path: ./packages/vue + filename: VueBuild.zip + - uses: ./.github/workflows/actions/publish-npm + with: + scope: '@ionic/vue-router' + tag: ${{ inputs.tag }} + version: ${{ inputs.version }} + working-directory: 'packages/vue-router' + token: ${{ secrets.NPM_TOKEN }}