/[sudobot]/trunk/.github/workflows/release.yml
ViewVC logotype

Annotation of /trunk/.github/workflows/release.yml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 630 - (hide annotations)
Sat Sep 7 14:57:22 2024 UTC (6 months, 3 weeks ago) by rakinar2
File size: 4642 byte(s)
chore: merge branch dev

1 rakinar2 575 name: Releases
2 rakinar2 630
3 rakinar2 575 on:
4     push:
5     branches:
6     - main
7    
8 rakinar2 616 permissions:
9     contents: write
10 rakinar2 630 deployments: write
11 rakinar2 616
12 rakinar2 575 jobs:
13     build:
14 rakinar2 630 if: github.repository_owner == 'onesoft-sudo' && github.ref == 'refs/heads/main'
15 rakinar2 575
16     strategy:
17     matrix:
18     os: [ubuntu-latest, macos-latest]
19    
20     runs-on: ${{ matrix.os }}
21    
22     steps:
23 rakinar2 616 - uses: actions/checkout@v4
24 rakinar2 575
25     - name: Use Node.js 21.x
26 rakinar2 616 uses: actions/setup-node@v4
27 rakinar2 575 with:
28     node-version: 21.x
29    
30     - name: Install Programs, Libraries and Tools (Linux)
31     run: |
32     sudo apt update;
33     sudo apt install build-essential libcurl4 libcurl4-gnutls-dev -y;
34     if: matrix.os == 'ubuntu-latest'
35    
36     - name: Install Programs, Libraries and Tools (macOS)
37     run: brew install curl pkg-config cairo pango libpng jpeg giflib librsvg
38     if: matrix.os == 'macos-latest'
39    
40     - name: "Install Native Libraries"
41     run: |
42     git clone https://github.com/Cogmasters/concord;
43     cd concord;
44     make;
45     sudo make install;
46     cd ..;
47    
48     - name: "Build Native Libraries with GNU Make"
49     run: make
50    
51     - name: "Build with BlazeBuild"
52     run: ./blazew build
53    
54     - name: "Package the build output files"
55     run: |
56     OS="${{ matrix.os }}";
57 rakinar2 608 mkdir sudobot-release-${OS};
58     mv build sudobot-release-${OS};
59 rakinar2 575 mv src sudobot-release-${OS};
60 rakinar2 608 mkdir sudobot-release-${OS}/lib;
61     mv lib/build sudobot-release-${OS}/lib/build;
62 rakinar2 575 tar -cvzf sudobot-release-${OS}-incomplete.tar.gz sudobot-release-${OS};
63    
64     - name: Upload Release Artifacts
65 rakinar2 616 uses: actions/upload-artifact@v4
66 rakinar2 575 with:
67     name: sudobot-release-${{ matrix.os }}-incomplete
68     path: |
69     ./sudobot-release-${{ matrix.os }}-incomplete.tar.gz
70    
71     release:
72     needs: [build]
73 rakinar2 630 if: github.repository_owner == 'onesoft-sudo' && github.ref == 'refs/heads/main'
74 rakinar2 575 runs-on: ubuntu-latest
75    
76     steps:
77 rakinar2 616 - uses: actions/checkout@v4
78 rakinar2 575
79     - name: Prepare Git
80     run: |
81     echo "${{ secrets.COMMIT_GPG_KEY }}" > private.key
82     gpg --import private.key
83     rm -f private.key
84     git config --global user.signingkey "6AE7B08C68169452"
85     git config --global commit.gpgsign true
86    
87 rakinar2 616 - name: Conventional Release Action
88     id: auto_release
89     uses: onesoft-sudo/conventional-release-action@main
90 rakinar2 575 with:
91 rakinar2 616 version-json-file: "./package.json"
92     git-user-name: "Conventional Release Action"
93 rakinar2 575 git-user-email: [email protected]
94 rakinar2 616 commit-message-format: "release: v%s [skip ci]"
95     git-sign-off: true
96     changelog-file: CHANGELOG.md
97     changelog-format: markdown
98     allowed-commit-types: feat,fix,refactor,perf,ci,build,test,revert,chore,release,deps
99 rakinar2 575
100     - name: Download Linux Release Artifact
101 rakinar2 616 uses: actions/download-artifact@v4
102 rakinar2 575 with:
103     name: sudobot-release-ubuntu-latest-incomplete
104    
105     - name: Download macOS Release Artifact
106 rakinar2 616 uses: actions/download-artifact@v4
107 rakinar2 575 with:
108     name: sudobot-release-macos-latest-incomplete
109    
110     - name: Extract Artifacts
111     run: |
112     tar -xvzf sudobot-release-ubuntu-latest-incomplete.tar.gz;
113     tar -xvzf sudobot-release-macos-latest-incomplete.tar.gz;
114    
115     - name: Rename Artifacts
116     run: |
117     mv sudobot-release-ubuntu-latest sudobot-release-linux;
118     mv sudobot-release-macos-latest sudobot-release-darwin;
119    
120     - name: Add package.json to Incomplete Artifacts
121     run: |
122     cp package.json sudobot-release-linux/package.json;
123     cp package.json sudobot-release-darwin/package.json;
124    
125     - name: Re-package Artifacts
126     run: |
127     tar -cvzf sudobot-release-linux.tar.gz sudobot-release-linux;
128     tar -cvzf sudobot-release-darwin.tar.gz sudobot-release-darwin;
129    
130     - name: Create Release
131     id: create_release
132     uses: ncipollo/release-action@v1
133 rakinar2 616 if: ${{ steps.auto_release.outputs.tag != '' }}
134 rakinar2 575 env:
135     GITHUB_TOKEN: ${{ secrets.__TOKEN }}
136     with:
137 rakinar2 616 tag: ${{ steps.auto_release.outputs.tag }}
138     name: ${{ steps.auto_release.outputs.tag }}
139     body: ${{ steps.auto_release.outputs.release_notes }}
140 rakinar2 575 artifactContentType: application/x-gzip
141     artifacts: ./sudobot-release-linux.tar.gz,./sudobot-release-darwin.tar.gz
142 rakinar2 626
143     deploy-staging:
144     needs: [build, release]
145     if: github.repository_owner == 'onesoft-sudo'
146     uses: ./.github/workflows/staging.yml
147     secrets: inherit

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26