-
Notifications
You must be signed in to change notification settings - Fork 0
141 lines (111 loc) · 4.56 KB
/
action.yml
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
name: Publish
on:
push:
tags:
- "*.*" # Push events to matching *.* tags only
env:
SVN_REPOSITORY: "https://plugins.svn.wordpress.org/moneroo-woocommerce"
SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }}
SVN_USERNAME: ${{ secrets.SVN_USERNAME }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v4
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- name: Install dependencies
run: composer install --no-dev --prefer-dist --optimize-autoloader --no-interaction
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: '16'
- name: Cache npm modules
id: npm-cache
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install npm dependencies
run: npm install
- name: Build project
run: npm run build
publish:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Dependencies
run: composer install --prefer-dist --no-interaction --no-dev --optimize-autoloader --no-interaction
- name: Install JS dependencies
run: |
npm install
npm run build
- name: Generate ZIP
id: building-zip
run: |
PLUGIN="moneroo"
PROJECT_ROOT=$(pwd)
PLUGIN_BUILDS_PATH="$PROJECT_ROOT/builds"
VERSION=$(sed -e "s/refs\/tags\///g" <<< $GITHUB_REF)
ZIP_FILE="$PLUGIN_BUILDS_PATH/$PLUGIN-$VERSION.zip"
PLUGIN_SLUG="moneroo-for-woocommerce"
echo "Building plugin file, version $VERSION"
# Replace the version in these 2 files.
sed -i -e "s/__STABLE_TAG__/$VERSION/g" ./readme.txt
sed -i -e "s/__STABLE_TAG__/$VERSION/g" "./$PLUGIN_SLUG.php"
mkdir -p $PLUGIN_BUILDS_PATH
zip -r $ZIP_FILE . -x "build-cfg/*" "builds/*" ".*" "wp-assets/*" "node_modules/*" "phpunit.xml.dist" "unused-scanner.php" "composer.json" "composer.lock" "README.md" ".php-cs-fixer.dist.php" "phpstan.neon" "phpunit.xml" "src/index.js" "pnpm-lock.yaml" "test.sh" "package-lock.json" "package.json"
if [ ! -f "$ZIP_FILE" ]; then
echo "Built zip file $ZIP_FILE does not exist" 1>&2
exit 1
fi
cp $ZIP_FILE $PLUGIN_BUILDS_PATH/moneroo.zip
if [ ! -f "$PLUGIN_BUILDS_PATH/moneroo.zip" ]; then
echo "Built zip file $PLUGIN_BUILDS_PATH/moneroo.zip does not exist" 1>&2
exit 1
fi
echo "Plugin file $PLUGIN_BUILDS_PATH/moneroo.zip successfully built"
echo "ZIP_FILE=$PLUGIN_BUILDS_PATH/moneroo.zip" >> $GITHUB_OUTPUT
echo "Successfully built $ZIP_FILE"
- name: Publish to CDN via S3
uses: axazara/easy-s3-upload-github-action@main
env:
FILE: ${{ steps.building-zip.outputs.ZIP_FILE }}
S3_ENDPOINT: ${{ secrets.CLOUDFLARE_ENDPOINT }}
S3_BUCKET: 'plugins'
S3_ACCESS_KEY_ID: ${{ secrets.CLOUDFLARE_ACCESS_KEY_ID }}
S3_SECRET_ACCESS_KEY: ${{ secrets.CLOUDFLARE_SECRET_ACCESS_KEY }}
- name: Prepare plugin folder
id: prepare-deploy
run: |
PLUGIN="moneroo"
PROJECT_ROOT=$(pwd)
PLUGIN_BUILDS_PATH="$PROJECT_ROOT/builds"
VERSION=$(sed -e "s/refs\/tags\///g" <<< $GITHUB_REF)
ZIP_FILE="$PLUGIN_BUILDS_PATH/$PLUGIN-$VERSION.zip"
TMP_DIR="$PLUGIN_BUILDS_PATH/tmp"
PLUGIN_DIR="$TMP_DIR/$PLUGIN"
mkdir -p $PLUGIN_DIR
unzip -q $ZIP_FILE -d $TMP_DIR
echo "PLUGIN_TMP_DIR=$TMP_DIR" >> $GITHUB_OUTPUT
echo "PLUGIN_VERSION=$VERSION" >> $GITHUB_OUTPUT
- name: Publish to WordPress SVN
uses: 10up/action-wordpress-plugin-deploy@stable
with:
generate-zip: false
env:
SVN_USERNAME: ${{ secrets.SVN_USERNAME }}
SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }}
SLUG: moneroo
VERSION: ${{ steps.prepare-deploy.outputs.PLUGIN_VERSION }}
ASSETS_DIR: wp-assets
BUILD_DIR: ${{ steps.prepare-deploy.outputs.PLUGIN_TMP_DIR }}