@@ -11,32 +11,28 @@ jobs:
1111 runs-on : ubuntu-latest
1212 env :
1313 PACKAGE : ${{ matrix.package }}
14- XPRESS_JL_SKIP_LIB_CHECK : " true"
15- # It's okay to share this secret with other packages because it is the public
16- # community-xpauth.xpr and not something confidential to JuMP-dev.
17- XPAUTH_XPR : ${{ secrets.XPAUTH_XPR }}
1814 strategy :
1915 fail-fast : false
2016 matrix :
2117 include :
2218 - package : ' JuMP'
2319 - package : ' Convex'
2420 - package : ' AmplNLWriter'
25- # - package: 'BARON' # Requires license
21+ - package : ' BARON'
2622 - package : ' Cbc'
2723 - package : ' Clp'
28- # - package: 'CPLEX' # See below
24+ - package : ' CPLEX'
2925 - package : ' CSDP'
3026 - package : ' DiffOpt'
3127 - package : ' DSDP'
3228 - package : ' Dualization'
3329 - package : ' ECOS'
3430 - package : ' GLPK'
35- # - package: 'Gurobi' # See below
31+ - package : ' Gurobi'
3632 - package : ' HiGHS'
3733 - package : ' Hypatia'
3834 - package : ' Ipopt'
39- # - package: 'KNITRO' # See below
35+ - package : ' KNITRO'
4036 - package : ' MiniZinc'
4137 - package : ' MosekTools'
4238 - package : ' MultiObjectiveAlgorithms'
4945 - package : ' PolyJuMP'
5046 - package : ' SCS'
5147 - package : ' SDPA'
52- # - package: 'SDPLR' # Requires MATLAB
48+ - package : ' SDPLR'
5349 # - package: 'SDPNAL' # Requires MATLAB
5450 # - package: 'SDPT3' # Requires MATLAB
5551 # - package: 'SeduMi' # Requires MATLAB
@@ -96,84 +92,78 @@ jobs:
9692 version : ' 1'
9793 - uses : julia-actions/cache@v2
9894 - uses : julia-actions/julia-buildpkg@v1
99- - name : Test
100- shell : julia --color=yes {0}
95+ # Setup BARON.jl
96+ - name : Add BARON secrets
97+ if : ${{ matrix.package == 'BARON' }}
98+ shell : bash
99+ # Writing a multiline string is hard. GitHub says:
100+ # https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions#multiline-strings
101+ #
102+ # For multiline strings, you may use a delimiter with the following syntax.
103+ #
104+ # {name}<<{delimiter}
105+ # {value}
106+ # {delimiter}
107+ #
108+ # Their example goes on to use 'EOF' as the delimiter, which works so
109+ # long as 'EOF' does not appear in the string. If you get the error:
110+ #
111+ # Run echo "SECRET_BARON_LICENSE='***
112+ # Error: Unable to process file command 'env' successfully.
113+ # Error: Invalid format '***'
114+ #
115+ # This is the most likely culprit.
101116 run : |
102- import Pkg
103- Pkg.develop(Pkg.PackageSpec(; path = pwd()))
104- if ENV["PACKAGE"] == "Xpress"
105- write("/opt/xpauth.xpr", ENV["XPAUTH_XPR"])
106- ENV["XPAUTH_PATH"] = "/opt/xpauth.xpr"
107- ENV["XPRESS_JL_SKIP_LIB_CHECK"] = true
108- end
109- Pkg.develop(ENV["PACKAGE"])
110- Pkg.build(ENV["PACKAGE"])
111- Pkg.test(ENV["PACKAGE"])
112- test-cplex :
113- name : CPLEX
114- runs-on : ubuntu-latest
115- steps :
116- - uses : actions/checkout@v4
117- - uses : julia-actions/setup-julia@v2
118- with :
119- version : ' 1'
120- - uses : julia-actions/cache@v2
121- - uses : julia-actions/julia-buildpkg@v1
122- - name : Test
123- shell : julia --color=yes {0}
124- env :
125- CPLEX_VERSION : ' 2210'
126- SECRET_CPLEX_URL_2210 : ${{ secrets.SECRET_CPLEX_URL_2210 }}
117+ {
118+ echo "SECRET_BARON_LICENSE<<EOF"
119+ echo "${{ secrets.BARON_LICENSE }}"
120+ echo "EOF"
121+ } >> $GITHUB_ENV
122+ # Setup CPLEX.jl
123+ - name : Add CPLEX secrets
124+ if : ${{ matrix.package == 'CPLEX' }}
125+ env :
126+ SECRET_CPLEX_URL_2210 : ${{ secrets.CPLEX_URL_2210 }}
127+ shell : bash
127128 run : |
128- import Pkg
129- Pkg.develop(Pkg.PackageSpec(; path = pwd()))
130- Pkg.develop("CPLEX")
131- Pkg.test("CPLEX")
132- test-gurobi :
133- name : Gurobi
134- runs-on : ubuntu-latest
135- steps :
136- - uses : actions/checkout@v4
137- - uses : julia-actions/setup-julia@v2
138- with :
139- version : ' 1'
140- - uses : julia-actions/cache@v2
141- - shell : bash
142- env :
143- WLSLICENSE : ${{ secrets.WLSLICENSE }}
129+ echo "SECRET_CPLEX_URL_2210=${SECRET_CPLEX_URL_2210}" >> $GITHUB_ENV
130+ echo "CPLEX_VERSION=2210" >> $GITHUB_ENV
131+ # Setup Gurobi.jl
132+ - name : Add Gurobi secrets
133+ if : ${{ matrix.package == 'Gurobi' }}
134+ env :
135+ SECRET_GUROBI_LICENSE : ${{ secrets.GUROBI_LICENSE }}
136+ shell : bash
144137 run : |
145138 mkdir -p /opt/gurobi
146- echo "$WLSLICENSE" > /opt/gurobi/gurobi.lic
147- - uses : julia-actions/julia-buildpkg@v1
148- - name : Test
149- shell : julia --color=yes {0}
139+ echo "${SECRET_GUROBI_LICENSE}" > /opt/gurobi/gurobi.lic
140+ # Setup KNITRO.jl
141+ - name : Add KNITRO secrets
142+ if : ${{ matrix.package == 'KNITRO' }}
143+ env :
144+ SECRET_KNITRO_LICENSE : ${{ secrets.KNITRO_LICENSE }}
145+ SECRET_KNITRO_URL : ${{ secrets.KNITRO_URL }}
146+ SECRET_KNITRO_LIBIOMP5 : ${{ secrets.KNITRO_LIBIOMP5 }}
147+ shell : bash
150148 run : |
151- import Pkg
152- Pkg.develop(Pkg.PackageSpec(; path = pwd()))
153- Pkg.develop("Gurobi")
154- Pkg.test("Gurobi")
155- test-knitro :
156- name : KNITRO
157- runs-on : ubuntu-latest
158- steps :
159- - uses : actions/checkout@v4
160- - uses : julia-actions/setup-julia@v2
161- with :
162- version : ' 1'
163- - uses : julia-actions/cache@v2
164- - shell : bash
149+ echo "${SECRET_KNITRO_LICENSE}" > ~/artelys_lic.txt
150+ echo "SECRET_KNITRO_URL=${SECRET_KNITRO_URL}" >> $GITHUB_ENV
151+ echo "SECRET_KNITRO_LIBIOMP5=${SECRET_KNITRO_LIBIOMP5}" >> $GITHUB_ENV
152+ # Setup Xpress.jl
153+ - name : Add Xpress secrets
154+ if : ${{ matrix.package == 'Xpress' }}
165155 env :
166- ARTELYS_LIC_JUMP_DEV : ${{ secrets.ARTELYS_LIC_8326_JUMP_DEV_2023_11_02 }}
156+ SECRET_XPRESS_LICENSE : ${{ secrets.XPRESS_LICENSE }}
157+ shell : bash
167158 run : |
168- echo "$ARTELYS_LIC_JUMP_DEV" > ~/artelys_lic.txt
169- - name : Test
159+ echo "${SECRET_XPRESS_LICENSE}" > /opt/xpauth.xpr
160+ echo "XPRESS_JL_SKIP_LIB_CHECK=true" >> $GITHUB_ENV
161+ echo "XPAUTH_PATH=/opt/xpauth.xpr" >> $GITHUB_ENV
162+ - name : Run tests
170163 shell : julia --color=yes {0}
171- env :
172- SECRET_KNITRO_URL : ${{ secrets.SECRET_KNITRO_URL }}
173- SECRET_KNITRO_LIBIOMP5 : ${{ secrets.SECRET_KNITRO_LIBIOMP5 }}
174164 run : |
175165 import Pkg
176166 Pkg.develop(Pkg.PackageSpec(; path = pwd()))
177- Pkg.develop("KNITRO" )
178- Pkg.build("KNITRO" )
179- Pkg.test("KNITRO" )
167+ Pkg.develop(ENV["PACKAGE"] )
168+ Pkg.build(ENV["PACKAGE"] )
169+ Pkg.test(ENV["PACKAGE"] )
0 commit comments