name: Production-Release on: workflow_dispatch env: EXCLUDE_SERVER: true EXCLUDE_ENTERPRISE: true BRANCH_NAME: ${{ github.head_ref || github.ref_name }} jobs: ubuntu: runs-on: ubuntu-18.04 steps: - name: Checkout uses: actions/checkout@v3 with: path: "focalboard" - id: "mattermostServer" uses: actions/checkout@v3 continue-on-error: true with: repository: "mattermost/mattermost-server" fetch-depth: "20" path: "mattermost-server" ref: ${{ env.BRANCH_NAME }} - uses: actions/checkout@v3 if: steps.mattermostServer.outcome == 'failure' with: repository: "mattermost/mattermost-server" fetch-depth: "20" path: "mattermost-server" ref : "master" - name: Replace token 1 server run: sed -i -e "s,placeholder_rudder_dataplane_url,${{ secrets.RUDDER_DATAPLANE_URL }},g" ${{ github.workspace }}/focalboard/server/services/telemetry/telemetry.go - name: Replace token 1 webapp run: sed -i -e "s,placeholder_rudder_dataplane_url,${{ secrets.RUDDER_DATAPLANE_URL }},g" ${{ github.workspace }}/focalboard/mattermost-plugin/webapp/src/index.tsx - name: Replace token 2 server run: sed -i -e "s,placeholder_rudder_key,${{ secrets.RUDDER_PROD_KEY }},g" ${{ github.workspace }}/focalboard/server/services/telemetry/telemetry.go - name: Replace token 2 webapp run: sed -i -e "s,placeholder_rudder_key,${{ secrets.RUDDER_PROD_KEY }},g" ${{ github.workspace }}/focalboard/mattermost-plugin/webapp/src/index.tsx - name: npm ci run: cd focalboard/webapp; npm ci --no-optional - name: Set up Go uses: actions/setup-go@v3 with: go-version: 1.18.1 - name: Setup Node uses: actions/setup-node@v3 with: node-version: 16.1.0 - name: apt-get update run: sudo apt-get update - name: apt-get install libgtk-3-dev run: sudo apt-get install libgtk-3-dev - name: apt-get install libwebkit2gtk-4.0-dev run: sudo apt-get install libwebkit2gtk-4.0-dev - name: Build Linux server and app run: cd focalboard; make server-linux-package linux-app env: BUILD_NUMBER: ${{ github.run_id }} - name: Upload server package uses: actions/upload-artifact@v3 with: name: focalboard-server-linux-amd64.tar.gz path: ${{ github.workspace }}/focalboard/dist/focalboard-server-linux-amd64.tar.gz - name: Upload app package uses: actions/upload-artifact@v3 with: name: focalboard-linux.tar.gz path: ${{ github.workspace }}/focalboard/linux/dist/focalboard-linux.tar.gz macos: runs-on: macos-11 steps: - name: Checkout uses: actions/checkout@v3 with: path: "focalboard" - id: "mattermostServer" uses: actions/checkout@v3 continue-on-error: true with: repository: "mattermost/mattermost-server" fetch-depth: "20" path: "mattermost-server" ref: ${{ env.BRANCH_NAME }} - uses: actions/checkout@v3 if: steps.mattermostServer.outcome == 'failure' with: repository: "mattermost/mattermost-server" fetch-depth: "20" path: "mattermost-server" ref : "master" - name: Replace token 1 server run: sed -i -e "s,placeholder_rudder_dataplane_url,${{ secrets.RUDDER_DATAPLANE_URL }},g" ${{ github.workspace }}/focalboard/server/services/telemetry/telemetry.go - name: Replace token 1 webapp run: sed -i -e "s,placeholder_rudder_dataplane_url,${{ secrets.RUDDER_DATAPLANE_URL }},g" ${{ github.workspace }}/focalboard/mattermost-plugin/webapp/src/index.tsx - name: Replace token 2 server run: sed -i -e "s,placeholder_rudder_key,${{ secrets.RUDDER_PROD_KEY }},g" ${{ github.workspace }}/focalboard/server/services/telemetry/telemetry.go - name: Replace token 2 webapp run: sed -i -e "s,placeholder_rudder_key,${{ secrets.RUDDER_PROD_KEY }},g" ${{ github.workspace }}/focalboard/mattermost-plugin/webapp/src/index.tsx - name: npm ci run: cd focalboard/webapp; npm ci --no-optional - name: Set up Go uses: actions/setup-go@v3 with: go-version: 1.18.1 - name: List Xcode versions run: ls -n /Applications/ | grep Xcode* - name: Build macOS run: cd focalboard; make mac-app env: DEVELOPER_DIR: /Applications/Xcode_13.2.1.app/Contents/Developer BUILD_NUMBER: ${{ github.run_id }} - name: Upload macOS package uses: actions/upload-artifact@v2 with: name: focalboard-mac.zip path: ${{ github.workspace }}/focalboard/mac/dist/focalboard-mac.zip windows: runs-on: windows-2022 steps: - name: Checkout uses: actions/checkout@v3 with: path: "focalboard" - id: "mattermostServer" uses: actions/checkout@v3 continue-on-error: true with: repository: "mattermost/mattermost-server" fetch-depth: "20" path: "mattermost-server" ref: ${{ env.BRANCH_NAME }} - uses: actions/checkout@v3 if: steps.mattermostServer.outcome == 'failure' with: repository: "mattermost/mattermost-server" fetch-depth: "20" path: "mattermost-server" ref : "master" - name: Replace token 1 server run: sed -i -e "s,placeholder_rudder_dataplane_url,${{ secrets.RUDDER_DATAPLANE_URL }},g" ${{ github.workspace }}/focalboard/server/services/telemetry/telemetry.go - name: Replace token 1 webapp run: sed -i -e "s,placeholder_rudder_dataplane_url,${{ secrets.RUDDER_DATAPLANE_URL }},g" ${{ github.workspace }}/focalboard/mattermost-plugin/webapp/src/index.tsx - name: Replace token 2 server run: sed -i -e "s,placeholder_rudder_key,${{ secrets.RUDDER_PROD_KEY }},g" ${{ github.workspace }}/focalboard/server/services/telemetry/telemetry.go - name: Replace token 2 webapp run: sed -i -e "s,placeholder_rudder_key,${{ secrets.RUDDER_PROD_KEY }},g" ${{ github.workspace }}/focalboard/mattermost-plugin/webapp/src/index.tsx - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v1.1 - name: npm ci run: cd focalboard/webapp; npm ci --no-optional - name: Set up Go uses: actions/setup-go@v3 with: go-version: 1.18.1 - name: Setup NuGet uses: nuget/setup-nuget@v1 with: nuget-version: '5.x' - name: NuGet Restore run: nuget restore win-wpf\Focalboard.sln - name: Build Windows WPF app run: cd focalboard; make win-wpf-app env: BUILD_NUMBER: ${{ github.run_id }} - name: Upload app msix package uses: actions/upload-artifact@v3 with: name: focalboard.msix path: ${{ github.workspace }}/focalboard/win-wpf/focalboard.msix - name: Upload app zip package uses: actions/upload-artifact@v3 with: name: focalboard-win.zip path: ${{ github.workspace }}/focalboard/win-wpf/dist/focalboard-win.zip plugin-release: runs-on: ubuntu-18.04 steps: - name: Checkout uses: actions/checkout@v3 with: path: "focalboard" - id: "mattermostServer" uses: actions/checkout@v3 continue-on-error: true with: repository: "mattermost/mattermost-server" fetch-depth: "20" path: "mattermost-server" ref: ${{ env.BRANCH_NAME }} - uses: actions/checkout@v3 if: steps.mattermostServer.outcome == 'failure' with: repository: "mattermost/mattermost-server" fetch-depth: "20" path: "mattermost-server" ref : "master" - name: Replace token 1 server run: sed -i -e "s,placeholder_rudder_dataplane_url,${{ secrets.RUDDER_DATAPLANE_URL }},g" ${{ github.workspace }}/focalboard/server/services/telemetry/telemetry.go - name: Replace token 1 webapp run: sed -i -e "s,placeholder_rudder_dataplane_url,${{ secrets.RUDDER_DATAPLANE_URL }},g" ${{ github.workspace }}/focalboard/mattermost-plugin/webapp/src/index.tsx - name: Replace token 2 server run: sed -i -e "s,placeholder_rudder_key,${{ secrets.RUDDER_PROD_KEY }},g" ${{ github.workspace }}/focalboard/server/services/telemetry/telemetry.go - name: Replace token 2 webapp run: sed -i -e "s,placeholder_rudder_key,${{ secrets.RUDDER_PROD_KEY }},g" ${{ github.workspace }}/focalboard/mattermost-plugin/webapp/src/index.tsx - name: npm ci run: cd focalboard/webapp; npm ci --no-optional - name: Set up Go uses: actions/setup-go@v3 with: go-version: 1.18.1 - name: Set up Node uses: actions/setup-node@v3 with: node-version: 16.1.0 - name: Build webapp run: cd focalboard; make webapp - name: npm ci plugin dependencies run: cd focalboard/mattermost-plugin/webapp && npm ci - name: Build plugin run: cd mattermost-plugin; make dist env: BUILD_NUMBER: ${{ github.run_id }} - name: Rename plugin file run: cd mattermost-plugin/dist; mv focalboard-*.tar.gz mattermost-plugin-focalboard.tar.gz - name: Upload plugin artifact uses: actions/upload-artifact@v3 with: name: mattermost-plugin-focalboard.tar.gz path: ${{ github.workspace }}/focalboard/mattermost-plugin/dist/mattermost-plugin-focalboard.tar.gz