Skip to content

Commit 3c04853

Browse files
committed
adding pipeline for gh release
1 parent 7fef7d7 commit 3c04853

File tree

3 files changed

+199
-0
lines changed

3 files changed

+199
-0
lines changed

.github/workflows/gh-release.yml

+149
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
name: Github Release
2+
3+
concurrency:
4+
group: ${{ github.ref }}
5+
cancel-in-progress: true
6+
7+
on:
8+
pull_request:
9+
branches:
10+
- "main"
11+
12+
push:
13+
branches:
14+
- "main"
15+
16+
jobs:
17+
# test_unit_js:
18+
# name: 🧪 Unit Tests JavaScript
19+
# runs-on: ubuntu-24.04
20+
# steps:
21+
# - uses: actions/checkout@v4
22+
# - uses: actions/setup-node@v4
23+
# - uses: ./.github/actions/rust-toolchain
24+
# - uses: Swatinem/rust-cache@v2
25+
# with: { shared-key: "${{ runner.os }}" }
26+
# - run: yarn
27+
# - run: yarn build-native-release && yarn build
28+
# - run: yarn test:js:unit
29+
30+
# test_unit_rs:
31+
# name: 🧪 Unit Tests Rust
32+
# runs-on: ubuntu-24.04
33+
# steps:
34+
# - uses: actions/checkout@v4
35+
# - uses: actions/setup-node@v4
36+
# - uses: ./.github/actions/rust-toolchain
37+
# - uses: Swatinem/rust-cache@v2
38+
# with: { shared-key: "${{ runner.os }}" }
39+
# - run: yarn
40+
# - run: yarn build-native-release && yarn build
41+
# - run: yarn test:rs:unit
42+
43+
# test_integration:
44+
# name: 🧪 Integration Tests
45+
# runs-on: ubuntu-24.04
46+
# steps:
47+
# - uses: actions/checkout@v4
48+
# - uses: actions/setup-node@v4
49+
# - uses: ./.github/actions/rust-toolchain
50+
# - uses: Swatinem/rust-cache@v2
51+
# with: { shared-key: "${{ runner.os }}" }
52+
# - run: yarn
53+
# - run: yarn build-native-release && yarn build
54+
# - run: yarn test:integration
55+
56+
# lint_and_format:
57+
# name: 📝 Lint & Format
58+
# runs-on: ubuntu-24.04
59+
# steps:
60+
# - uses: actions/checkout@v4
61+
# - uses: actions/setup-node@v4
62+
# - uses: ./.github/actions/rust-toolchain
63+
# with: { components: "clippy, rustfmt" }
64+
# - uses: Swatinem/rust-cache@v2
65+
# with: { shared-key: "${{ runner.os }}" }
66+
# - run: yarn --frozen-lockfile
67+
# - run: yarn build-native-release && yarn build
68+
# - run: yarn lint
69+
70+
build_native:
71+
strategy:
72+
matrix:
73+
config:
74+
- name: 🐥 Linux AMD64
75+
os: linux
76+
arch: amd64
77+
runner: ubuntu-24.04
78+
79+
- name: 🐥 Linux ARM64
80+
os: linux
81+
arch: arm64
82+
runner: ubuntu-24.04-arm
83+
84+
- name: 🍎 MacOS AMD64
85+
os: macos
86+
arch: amd64
87+
runner: macos-13
88+
89+
- name: 🍎 MacOS ARM64
90+
os: macos
91+
arch: arm64
92+
runner: macos-15
93+
94+
# - name: 🟦 Windows AMD64
95+
# os: windows
96+
# arch: amd64
97+
# runner: windows-latest
98+
99+
name: ${{ matrix.config.name }}
100+
runs-on: ${{ matrix.config.runner }}
101+
steps:
102+
- uses: actions/checkout@v4
103+
- uses: actions/setup-node@v4
104+
- uses: ./.github/actions/rust-toolchain
105+
- run: yarn --frozen-lockfile
106+
- run: yarn build-native-release
107+
- uses: actions/upload-artifact@v4
108+
with:
109+
name: ${{ matrix.config.os }}-${{ matrix.config.arch }}
110+
path: ${{ github.workspace }}/packages/core/rust/*.node
111+
if-no-files-found: error
112+
retention-days: 1
113+
114+
build_flow:
115+
name: 🔨 Build Flow
116+
runs-on: ubuntu-24.04
117+
needs: ["build_native"]
118+
steps:
119+
- uses: actions/checkout@v4
120+
- uses: actions/setup-node@v4
121+
- uses: actions/download-artifact@v4
122+
with: { path: "${{ github.workspace }}/packages/core/rust" }
123+
- run: yarn --frozen-lockfile
124+
- run: yarn build
125+
- run: yarn build-ts
126+
127+
128+
publish-github-release:
129+
name: "🔄 Publish Github Release"
130+
runs-on: ubuntu-24.04
131+
needs:
132+
# - test_unit_js
133+
# - test_unit_rs
134+
# - test_integration
135+
# - lint_and_format
136+
- build_flow
137+
steps:
138+
- uses: actions/checkout@v4
139+
- uses: actions/download-artifact@v4
140+
with: { path: artifacts }
141+
- name: Publish` Github Release
142+
env:
143+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
144+
run: |
145+
set -e
146+
147+
TAG="$(date -u +"v%Y.%m.%d.%H%M").${GITHUB_SHA::4}"
148+
echo "Tag: ${TAG}"
149+

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
"test:js:coverage": "yarn nyc yarn test:js:unit",
4040
"test:js:coverage:report": "yarn nyc report --reporter=html-spa",
4141
"test:js:unit": "cross-env NODE_ENV=test mocha --conditions=\"@atlaspack::sources\" --timeout 5000",
42+
"test:rs:unit": "cargo test",
4243
"test:unit": "yarn test:js:unit && cargo test",
4344
"dev:release": "SKIP_PLUGIN_COMPATIBILITY_CHECK=true lerna publish -y --canary --preid dev --dist-tag=dev --exact --force-publish=* --no-git-tag-version --no-push",
4445
"canary:release": "SKIP_PLUGIN_COMPATIBILITY_CHECK=true lerna publish -y --canary --preid canary --dist-tag=canary --exact --force-publish=* --no-git-tag-version --no-push",

scripts/package.bash

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
set -e
2+
3+
PATH_SCRIPT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
4+
PATH_ROOT=$(dirname $PATH_SCRIPT)
5+
6+
cd $PATH_ROOT/..
7+
8+
rm -rf atlaspack-bin
9+
10+
tar \
11+
--exclude './atlaspack/benchmarks' \
12+
--exclude './atlaspack/.parcel-cache' \
13+
--exclude './atlaspack/.git' \
14+
--exclude './atlaspack/target' \
15+
--exclude './atlaspack/packages/core/integration-tests' \
16+
--exclude './atlaspack/packages/examples' \
17+
--exclude './atlaspack/packages/migrations' \
18+
--exclude './atlaspack/packages/docs' \
19+
--exclude './atlaspack/packages/flow-libs' \
20+
--exclude './atlaspack/packages/flow-typed' \
21+
--exclude './atlaspack/packages/patches' \
22+
--exclude './atlaspack/packages/dev/repl' \
23+
--exclude './atlaspack/packages/utils/atlaspackforvscode' \
24+
--exclude './atlaspack/crates' \
25+
-J -cvf \
26+
./atlaspack.tar.xz ./atlaspack
27+
28+
# ll ./atlaspack-bin
29+
# tar -czf ./atlaspack.tar.gz ./atlaspack-bin
30+
du -sh --apparent-size ./atlaspack.tar.xz
31+
32+
33+
tar \
34+
--exclude './atlaspack/benchmarks' \
35+
--exclude './atlaspack/.parcel-cache' \
36+
--exclude './atlaspack/.git' \
37+
--exclude './atlaspack/target' \
38+
--exclude './atlaspack/packages/core/integration-tests' \
39+
--exclude './atlaspack/packages/examples' \
40+
--exclude './atlaspack/packages/migrations' \
41+
--exclude './atlaspack/packages/docs' \
42+
--exclude './atlaspack/packages/flow-libs' \
43+
--exclude './atlaspack/packages/flow-typed' \
44+
--exclude './atlaspack/packages/patches' \
45+
--exclude './atlaspack/packages/dev/repl' \
46+
--exclude './atlaspack/packages/utils/atlaspackforvscode' \
47+
--exclude './atlaspack/crates' \
48+
-J -cf \
49+
./atlaspack-${{ matrix.config.os }}-${{ matrix.config.arch }}.tar.xz ./atlaspack

0 commit comments

Comments
 (0)