Repository navigation
91 lines (74 loc) · 3 KB
/
Copy pathexport-put-release.yml
File metadata and controls
91 lines (74 loc) · 3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
name: Export Put Release
on:
workflow_dispatch:
jobs:
install:
runs-on: ubuntu-latest
steps:
- name: Clone
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Show Git info
run: |
echo "GITHUB_SHA=$GITHUB_SHA"
git rev-parse HEAD
git branch --show-current
ls -la
test -f package.json && echo "package.json found"
test -f package-lock.json && echo "package-lock.json found"
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- name: Update npm
run: npm install -g npm@10
- name: Show versions
run: |
node -v
npm -v
- name: Debug package files
run: |
echo "---- package.json dependency search ----"
grep -n "@floating-ui/dom" package.json || true
echo "---- package-lock.json dependency search ----"
grep -n "@floating-ui/dom" package-lock.json || true
echo "---- lockfile version ----"
node -e "const lock=require('./package-lock.json'); console.log(lock.lockfileVersion)"
echo "---- package name/version ----"
node -e "const pkg=require('./package.json'); console.log(pkg.name, pkg.version)"
- name: Validate lockfile with npm ci
run: npm ci
- name: Set version
id: version-selector
run: echo "version=$(node -p "require('./package.json').version")" >> "$GITHUB_OUTPUT"
- name: Set time
id: time-selector
run: echo "time=$(date +%Y%m%d-%H%M)" >> "$GITHUB_OUTPUT"
- name: Set build metadata
run: |
echo "ENFLEX_APPLICATION_RELEASE_TAG=v${{ steps.version-selector.outputs.version }}" >> "$GITHUB_ENV"
echo "ENFLEX_BUILD_TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$GITHUB_ENV"
echo "ENFLEX_APPLICATION_COMMIT_SHA=$(git rev-parse --short=12 HEAD)" >> "$GITHUB_ENV"
- name: Generate application configuration
run: npm run config:generate
- name: Export
run: npx expo export -p web
- name: Package
env:
name: ${{ secrets.PROJECT_NAME }}_${{ steps.version-selector.outputs.version }}_${{ steps.time-selector.outputs.time }}
run: cd dist && zip -r ../$name.zip .
- name: Put
env:
url: ${{ secrets.FTP_UPLOAD_URL }}
user: ${{ secrets.FTP_USER }}
pwd: ${{ secrets.FTP_PSWD }}
name: ${{ secrets.PROJECT_NAME }}_${{ steps.version-selector.outputs.version }}_${{ steps.time-selector.outputs.time }}
path: ${{ secrets.PROJECT_PATH }}
run: printf "open $url\nuser $user $pwd\ncd $path\nput $name.zip\nexit" | ftp -n
- name: Release
uses: softprops/action-gh-release@v2
with:
files: ${{ secrets.PROJECT_NAME }}_${{ steps.version-selector.outputs.version }}_${{ steps.time-selector.outputs.time }}.zip
tag_name: v${{ steps.version-selector.outputs.version }}