feat(ci): CircleCI migration to Github Actions (#2516)

* Deprecated trigger-desktop-nightly repo from gitlab
* Migrated Nightly builds URLs from CircleCI to S3
* Full CI/CD is handled by Github Actions

---------

Co-authored-by: Tasos Boulis <tboulis@hotmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
This commit is contained in:
Antonis Stamatiou
2023-03-06 11:51:25 +02:00
committed by GitHub
parent 8efa3480e4
commit b62b25fdda
16 changed files with 2271 additions and 3300 deletions

View File

@@ -0,0 +1,11 @@
# Copyright 2022 Mattermost, Inc.
name: "patch-version"
description: This action is used to patch package.json version with the nightly build
runs:
using: "composite"
steps:
- name: ci/generate-version
id: generate-version
shell: bash
run: go run ${{ github.action_path }}/patch-version.go .

View File

@@ -0,0 +1,42 @@
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"os"
"strings"
"time"
)
func main() {
args := os.Args[1:]
packageFileName := fmt.Sprintf("%s/package.json", args[0])
packageJson, err := os.Open(packageFileName)
if err != nil {
log.Fatal(err)
}
packageBytes, err := ioutil.ReadAll(packageJson)
if err != nil {
log.Fatal(err)
}
var packageInfo map[string]interface{}
json.Unmarshal(packageBytes, &packageInfo)
originalVersion := fmt.Sprintf("%s", packageInfo["version"])
nightlyVersion := fmt.Sprintf("%s-nightly.%s", strings.Split(originalVersion, "-")[0], time.Now().Format("20060102"))
packageInfo["version"] = nightlyVersion
newPackageJson := strings.Replace(string(packageBytes), originalVersion, nightlyVersion, 1)
err = ioutil.WriteFile(packageFileName, []byte(newPackageJson), 0644)
if err != nil {
log.Fatal(err)
}
packageJson.Close()
fmt.Println("Update package.json with version:", nightlyVersion)
}

27
.github/actions/test/action.yaml vendored Normal file
View File

@@ -0,0 +1,27 @@
# Copyright 2022 Mattermost, Inc.
name: "test-ci"
description: This action used to run universal tests for all OS
inputs:
shell:
description: The shell to run the test
required: true
default: bash
runs:
using: "composite"
steps:
- name: ci/run-check-types
run: npm run check-types
shell: ${{ inputs.shell }}
- name: ci/run-i18n-check
shell: ${{ inputs.shell }}
run: |
npm run mmjstool -- i18n extract-desktop --desktop-dir .
git --no-pager diff --exit-code i18n/en.json
- name: ci/run-unit-ci
shell: ${{ inputs.shell }}
env:
ELECTRON_DISABLE_SANDBOX: "1"
run: |
npm run test:unit-ci