forked from RedMadRobot/figma-export
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(ci): add the needed files for enabling ci
- Loading branch information
1 parent
c8148ab
commit bb7c48b
Showing
7 changed files
with
373 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# General | ||
GIT_TOKEN=$GITHUB_TOKEN | ||
REPOSITORY_NAME=Fueled/figma-export | ||
BUILD_CONFIGURATION=Release | ||
SCHEME=figma-export | ||
VERSION_BUMP_TYPE=patch | ||
FORCE_NECESSARY=true | ||
|
||
# Linear | ||
FUELED_LINEAR_API_KEY=$FUELED_LINEAR_API_KEY | ||
FUELED_LINEAR_TEAM_ID= | ||
FUELED_LINEAR_LABELS= | ||
FUELED_LINEAR_FROM_STATE= | ||
FUELED_LINEAR_TO_STATE= |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
source "https://rubygems.org" | ||
|
||
gem "fastlane" | ||
gem 'xcode-install' | ||
|
||
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') | ||
eval_gemfile(plugins_path) if File.exist?(plugins_path) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,229 @@ | ||
GIT | ||
remote: https://github.com/Fueled/fastlane-plugin-fueled | ||
revision: 15f74bb16ce0b388f785e36fba53b933d4791588 | ||
tag: 0.3.0 | ||
specs: | ||
fastlane-plugin-fueled (0.3.0) | ||
fastlane-plugin-appcenter (~> 2.0.0) | ||
fastlane-plugin-versioning (~> 0.5.0) | ||
|
||
GEM | ||
remote: https://rubygems.org/ | ||
specs: | ||
CFPropertyList (3.0.6) | ||
rexml | ||
addressable (2.8.5) | ||
public_suffix (>= 2.0.2, < 6.0) | ||
artifactory (3.0.15) | ||
atomos (0.1.3) | ||
aws-eventstream (1.3.0) | ||
aws-partitions (1.862.0) | ||
aws-sdk-core (3.190.0) | ||
aws-eventstream (~> 1, >= 1.3.0) | ||
aws-partitions (~> 1, >= 1.651.0) | ||
aws-sigv4 (~> 1.8) | ||
jmespath (~> 1, >= 1.6.1) | ||
aws-sdk-kms (1.74.0) | ||
aws-sdk-core (~> 3, >= 3.188.0) | ||
aws-sigv4 (~> 1.1) | ||
aws-sdk-s3 (1.141.0) | ||
aws-sdk-core (~> 3, >= 3.189.0) | ||
aws-sdk-kms (~> 1) | ||
aws-sigv4 (~> 1.8) | ||
aws-sigv4 (1.8.0) | ||
aws-eventstream (~> 1, >= 1.0.2) | ||
babosa (1.0.4) | ||
claide (1.1.0) | ||
colored (1.2) | ||
colored2 (3.1.2) | ||
commander (4.6.0) | ||
highline (~> 2.0.0) | ||
declarative (0.0.20) | ||
digest-crc (0.6.5) | ||
rake (>= 12.0.0, < 14.0.0) | ||
domain_name (0.6.20231109) | ||
dotenv (2.8.1) | ||
emoji_regex (3.2.3) | ||
excon (0.105.0) | ||
faraday (1.10.3) | ||
faraday-em_http (~> 1.0) | ||
faraday-em_synchrony (~> 1.0) | ||
faraday-excon (~> 1.1) | ||
faraday-httpclient (~> 1.0) | ||
faraday-multipart (~> 1.0) | ||
faraday-net_http (~> 1.0) | ||
faraday-net_http_persistent (~> 1.0) | ||
faraday-patron (~> 1.0) | ||
faraday-rack (~> 1.0) | ||
faraday-retry (~> 1.0) | ||
ruby2_keywords (>= 0.0.4) | ||
faraday-cookie_jar (0.0.7) | ||
faraday (>= 0.8.0) | ||
http-cookie (~> 1.0.0) | ||
faraday-em_http (1.0.0) | ||
faraday-em_synchrony (1.0.0) | ||
faraday-excon (1.1.0) | ||
faraday-httpclient (1.0.1) | ||
faraday-multipart (1.0.4) | ||
multipart-post (~> 2) | ||
faraday-net_http (1.0.1) | ||
faraday-net_http_persistent (1.2.0) | ||
faraday-patron (1.0.0) | ||
faraday-rack (1.0.0) | ||
faraday-retry (1.0.3) | ||
faraday_middleware (1.2.0) | ||
faraday (~> 1.0) | ||
fastimage (2.2.7) | ||
fastlane (2.217.0) | ||
CFPropertyList (>= 2.3, < 4.0.0) | ||
addressable (>= 2.8, < 3.0.0) | ||
artifactory (~> 3.0) | ||
aws-sdk-s3 (~> 1.0) | ||
babosa (>= 1.0.3, < 2.0.0) | ||
bundler (>= 1.12.0, < 3.0.0) | ||
colored | ||
commander (~> 4.6) | ||
dotenv (>= 2.1.1, < 3.0.0) | ||
emoji_regex (>= 0.1, < 4.0) | ||
excon (>= 0.71.0, < 1.0.0) | ||
faraday (~> 1.0) | ||
faraday-cookie_jar (~> 0.0.6) | ||
faraday_middleware (~> 1.0) | ||
fastimage (>= 2.1.0, < 3.0.0) | ||
gh_inspector (>= 1.1.2, < 2.0.0) | ||
google-apis-androidpublisher_v3 (~> 0.3) | ||
google-apis-playcustomapp_v1 (~> 0.1) | ||
google-cloud-storage (~> 1.31) | ||
highline (~> 2.0) | ||
http-cookie (~> 1.0.5) | ||
json (< 3.0.0) | ||
jwt (>= 2.1.0, < 3) | ||
mini_magick (>= 4.9.4, < 5.0.0) | ||
multipart-post (>= 2.0.0, < 3.0.0) | ||
naturally (~> 2.2) | ||
optparse (~> 0.1.1) | ||
plist (>= 3.1.0, < 4.0.0) | ||
rubyzip (>= 2.0.0, < 3.0.0) | ||
security (= 0.1.3) | ||
simctl (~> 1.6.3) | ||
terminal-notifier (>= 2.0.0, < 3.0.0) | ||
terminal-table (~> 3) | ||
tty-screen (>= 0.6.3, < 1.0.0) | ||
tty-spinner (>= 0.8.0, < 1.0.0) | ||
word_wrap (~> 1.0.0) | ||
xcodeproj (>= 1.13.0, < 2.0.0) | ||
xcpretty (~> 0.3.0) | ||
xcpretty-travis-formatter (>= 0.0.3) | ||
fastlane-plugin-appcenter (2.0.0) | ||
fastlane-plugin-versioning (0.5.2) | ||
gh_inspector (1.1.3) | ||
google-apis-androidpublisher_v3 (0.53.0) | ||
google-apis-core (>= 0.11.0, < 2.a) | ||
google-apis-core (0.11.2) | ||
addressable (~> 2.5, >= 2.5.1) | ||
googleauth (>= 0.16.2, < 2.a) | ||
httpclient (>= 2.8.1, < 3.a) | ||
mini_mime (~> 1.0) | ||
representable (~> 3.0) | ||
retriable (>= 2.0, < 4.a) | ||
rexml | ||
webrick | ||
google-apis-iamcredentials_v1 (0.17.0) | ||
google-apis-core (>= 0.11.0, < 2.a) | ||
google-apis-playcustomapp_v1 (0.13.0) | ||
google-apis-core (>= 0.11.0, < 2.a) | ||
google-apis-storage_v1 (0.29.0) | ||
google-apis-core (>= 0.11.0, < 2.a) | ||
google-cloud-core (1.6.0) | ||
google-cloud-env (~> 1.0) | ||
google-cloud-errors (~> 1.0) | ||
google-cloud-env (1.6.0) | ||
faraday (>= 0.17.3, < 3.0) | ||
google-cloud-errors (1.3.1) | ||
google-cloud-storage (1.45.0) | ||
addressable (~> 2.8) | ||
digest-crc (~> 0.4) | ||
google-apis-iamcredentials_v1 (~> 0.1) | ||
google-apis-storage_v1 (~> 0.29.0) | ||
google-cloud-core (~> 1.6) | ||
googleauth (>= 0.16.2, < 2.a) | ||
mini_mime (~> 1.0) | ||
googleauth (1.8.1) | ||
faraday (>= 0.17.3, < 3.a) | ||
jwt (>= 1.4, < 3.0) | ||
multi_json (~> 1.11) | ||
os (>= 0.9, < 2.0) | ||
signet (>= 0.16, < 2.a) | ||
highline (2.0.3) | ||
http-cookie (1.0.5) | ||
domain_name (~> 0.5) | ||
httpclient (2.8.3) | ||
jmespath (1.6.2) | ||
json (2.7.0) | ||
jwt (2.7.1) | ||
mini_magick (4.12.0) | ||
mini_mime (1.1.5) | ||
multi_json (1.15.0) | ||
multipart-post (2.3.0) | ||
nanaimo (0.3.0) | ||
naturally (2.2.1) | ||
optparse (0.1.1) | ||
os (1.1.4) | ||
plist (3.7.0) | ||
public_suffix (5.0.4) | ||
rake (13.1.0) | ||
representable (3.2.0) | ||
declarative (< 0.1.0) | ||
trailblazer-option (>= 0.1.1, < 0.2.0) | ||
uber (< 0.2.0) | ||
retriable (3.1.2) | ||
rexml (3.2.6) | ||
rouge (2.0.7) | ||
ruby2_keywords (0.0.5) | ||
rubyzip (2.3.2) | ||
security (0.1.3) | ||
signet (0.18.0) | ||
addressable (~> 2.8) | ||
faraday (>= 0.17.5, < 3.a) | ||
jwt (>= 1.5, < 3.0) | ||
multi_json (~> 1.10) | ||
simctl (1.6.10) | ||
CFPropertyList | ||
naturally | ||
terminal-notifier (2.0.0) | ||
terminal-table (3.0.2) | ||
unicode-display_width (>= 1.1.1, < 3) | ||
trailblazer-option (0.1.2) | ||
tty-cursor (0.7.1) | ||
tty-screen (0.8.1) | ||
tty-spinner (0.9.3) | ||
tty-cursor (~> 0.7) | ||
uber (0.1.0) | ||
unicode-display_width (2.5.0) | ||
webrick (1.8.1) | ||
word_wrap (1.0.0) | ||
xcode-install (2.8.1) | ||
claide (>= 0.9.1) | ||
fastlane (>= 2.1.0, < 3.0.0) | ||
xcodeproj (1.23.0) | ||
CFPropertyList (>= 2.3.3, < 4.0) | ||
atomos (~> 0.1.3) | ||
claide (>= 1.0.2, < 2.0) | ||
colored2 (~> 3.1) | ||
nanaimo (~> 0.3.0) | ||
rexml (~> 3.2.4) | ||
xcpretty (0.3.0) | ||
rouge (~> 2.0.7) | ||
xcpretty-travis-formatter (1.0.1) | ||
xcpretty (~> 0.2, >= 0.0.7) | ||
|
||
PLATFORMS | ||
arm64-darwin-23 | ||
|
||
DEPENDENCIES | ||
fastlane | ||
fastlane-plugin-fueled! | ||
xcode-install | ||
|
||
BUNDLED WITH | ||
2.4.20 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
workflows: | ||
pr-check: | ||
name: PR Check | ||
triggering: | ||
events: | ||
- pull_request | ||
cancel_previous_builds: true | ||
when: | ||
condition: not event.pull_request.draft | ||
max_build_duration: 45 | ||
environment: | ||
xcode: 15 | ||
scripts: | ||
- name: Test | ||
script: swift test | ||
|
||
release: | ||
name: Release from the fueled branch | ||
max_build_duration: 45 | ||
triggering: | ||
events: | ||
- push | ||
branch_patterns: | ||
- pattern: fueled | ||
cancel_previous_builds: true | ||
environment: | ||
xcode: 15 | ||
groups: | ||
- project-secrets | ||
scripts: | ||
- name: Project Setup | ||
script: | | ||
gem install bundler | ||
bundle install | ||
- name: Run Fastlane | ||
script: bundle exec fastlane mac release --env release |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
import 'helpers.rb' | ||
|
||
fastlane_version '2.206.0' | ||
opt_out_usage | ||
|
||
platform :mac do | ||
lane :release do | ||
asset_path = File.join(Dir.pwd, "figma-export.zip") | ||
Dir.chdir("..") do | ||
sh("swift build -c release --arch arm64 --arch x86_64") | ||
sh("cp ./.build/apple/Products/Release/figma-export ./Release/figma-export") | ||
sh("cp -r ./.build/apple/Products/Release/figma-export_AndroidExport.bundle ./Release/figma-export_AndroidExport.bundle") | ||
sh("cp -r ./.build/apple/Products/Release/figma-export_XcodeExport.bundle ./Release/figma-export_XcodeExport.bundle") | ||
sh("zip -r #{asset_path} Release LICENSE") | ||
end | ||
|
||
current_short_version = short_version_from_tag() | ||
puts "current_short_version: #{current_short_version}" | ||
|
||
new_short_version = bump_semver(semver: current_short_version, bump_type: ENV["VERSION_BUMP_TYPE"]) | ||
puts "new_short_version: #{new_short_version}" | ||
|
||
tag_name = "v#{new_short_version}" | ||
UI.message("Tagging #{tag_name}...") | ||
|
||
if is_ci | ||
use_git_credential_store | ||
sh("git tag -f \"#{tag_name}\" && git push origin \"refs/tags/#{tag_name}\" --force") | ||
|
||
last_commit_message = sh("git log -1 --pretty=%B").strip | ||
|
||
set_github_release( | ||
repository_name: ENV["REPOSITORY_NAME"], | ||
api_bearer: ENV["GIT_TOKEN"], | ||
name: tag_name, | ||
tag_name: tag_name, | ||
description: last_commit_message, | ||
upload_assets: [ | ||
asset_path | ||
] | ||
) | ||
else | ||
UI.message("Skipping tagging and github release because this is not a CI build") | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
gem 'fastlane-plugin-fueled', git: "https://github.com/Fueled/fastlane-plugin-fueled", tag: '0.3.0' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# Returns the current short version, only by reading the last tag. | ||
def short_version_from_tag() | ||
UI.important("Setting short_version from most recent tag") | ||
last_tag = fetch_last_tag | ||
last_tag = (last_tag.nil? || last_tag.empty?) ? "v0.0.0" : last_tag | ||
last_tag[1..-1] | ||
end | ||
|
||
# Bump a given semver version, by incrementing the appropriate | ||
# component, as per the bump_type (patch, minor, major, or none). | ||
def bump_semver(semver:, bump_type:) | ||
splitted_version = { | ||
major: semver.split('.').map(&:to_i)[0] || 0, | ||
minor: semver.split('.').map(&:to_i)[1] || 0, | ||
patch: semver.split('.').map(&:to_i)[2] || 0 | ||
} | ||
case bump_type | ||
when "patch" | ||
splitted_version[:patch] = splitted_version[:patch] + 1 | ||
when "minor" | ||
splitted_version[:minor] = splitted_version[:minor] + 1 | ||
splitted_version[:patch] = 0 | ||
when "major" | ||
splitted_version[:major] = splitted_version[:major] + 1 | ||
splitted_version[:minor] = 0 | ||
splitted_version[:patch] = 0 | ||
end | ||
[splitted_version[:major], splitted_version[:minor], splitted_version[:patch]].map(&:to_s).join('.') | ||
end | ||
|
||
# Returns the last tag in the repo | ||
def fetch_last_tag() | ||
tag = nil | ||
git_cmd = "git tag -l --sort=-v:refname | grep -iF '' -m 1" | ||
begin | ||
tag = sh(git_cmd) | ||
rescue FastlaneCore::Interface::FastlaneShellError | ||
end | ||
tag | ||
end |